A question that has bugged me is why app developers (especially Google) do not allow apps to be written to the SD card. I understand there are a few that cannot; however, I think there are still quite a few apps that can run from SD, which would benefit those of us with small amounts of internal memory.
Here is an excellent list of characteristics of apps which should not be installed on SD card, with reasons, from the Android developer site. Hope it helps.
Normally, apps that need to run constantly or in the background are considered to be unsuited to run from a storage card. This is also probably why most "system" apps are prohibited from doing so. Consider, if the card was unmounted, those apps would remain unavailable until the card was re-mounted.
As to why an app developer wouldn't make his/her app storage-friendly is a question better answered by those in the know.