Because, unlike land-line phones, a cellular phone is a complex device that is an integral part of the system. A buggy or hacked radio software can potentially disrupt service to many other paying customers. It needs to be tightly controlled to assure network availability for everyone. Therefore every phone needs to undergo an expensive battery of tests and certification.
Therefore these phones are actully quite expensive. In order to get the price down to a level to attract the most customers they have to be subsidized. Therefore, you have to sign a contract promising to stick with them for some amount of time to cover that cost.
But you can also pay full price for a phone and get a monthly service plan from most carriers. Many people overlook this.
You can also, in fact, buy a GSM or CDMA modem (only) and attach it to a PC (or TI-89) by serial or USB, add some custom software, and make a smart phone out of it. It won't be very compact, however. Getting all that into one hand-held device is not so easy either.
Modern smart phones, like the G1, actually have two CPUs in them, one for the apps and interface and one for the radio interface. The radio CPU and memory are isolated by hardware.