Have you bothered looking up specs of a 3GS? It has a 600MHz processor 256 MB RAM, I'd say those are pretty close or below a lot of lower end Android devices. This device will go through 3 major updates, unlike many Android devices, even higher end devices. I've had the 4 since it launched, and they have fixed numerous bugs and security issues, the PDF jailbreak that Comex released was a security vulnerability that Apple patched not even 2 weeks after it was out. It no longer works.
Just so you know, most Android phones have received at least two major updates. Along with incremental security/bug fix updates. Most phones that started with Cupcake were upgraded to Donut, Eclair and even Froyo. Phones that started with Eclair have been upgraded to Froyo and Gingerbread. Phones that started with Froyo have been upgraded to Gingerbread and now rolling out ICS.
Apple strips features out of IOS for their older models. If Google had to do this for every single Android phone out there, they would never have time to improve their OS. Each OS brings on many features that newer hardware supports. Therefore major updates past two usually require better hardware or else the phone would run extremely slow. Think about installing Windows 7 on an older PC. Google does not have the time to strip down newer updates to the barebones for some old a** phones. You are comparing Apples to Oranges. Nobody who has an old 600mhz Android phone is complaining about not receiving Gingerbread or ICS. They get a new phone.
Apple releases the newer IOS versions to older devices but stripped down. They can afford to do this for two reasons. One they only have a handful of phones, and two they have not been making major changes to the UI.
The one update which has taken forever to get to phones is ICS. And the reason is because Google changed the UI. When is the last time Apple changed their UI? They still use the exact same UI they have always used. Anyway back on topic.