Why no fully opensource GSM mobiles?
It's not a well-known fact that many companies buy-in their protocol stack for GSM (this is the program which does all the GSM signalling, making calls, de/encoding audio, doing data, sms etc).
GSM is also encrypted, with the keys hidden inside the SIM, but when the call is running the sessions keys need to be available to the GSM call processor. If someone had those keys, they could clone SIMs, listen in to other's phone calls etc.
Many GSM phones' hardware will only be compliant with telco legislation in a specific country when run with specific software.
So, basically, the GSM software could never be GPLd, nor could the application have free run of the whole system. Same problem as some wireless lan cards, they're more software than hardware.
So, the problem with a linux smartphone is that you'd have to partition the system into two parts, a closed-source locked-down secure OS (or co-processor), and the open-source part. This makes it hard to optimise power consumption, talk time etc.
It's easier to simply have a GSM phone module which has no user interface at all, and is controlled through a tightly defined interface which makes it relatively secure; this leads to designs like the PCMCIA/CF data cards, or modules like the springboard phones that worked with the handspring visor.
Paul