And don’t forget future OS support. There are Android phones out there that ended official OS upgrade support rather quickly. Look at the Droid Eris, released in Nov 99 with Android 1.5, upgraded to 2.1 in May 2010 (7 months after 2.1 was released), and that’s it. No Froyo. It will never officially get the OS version that came out only six months after the phone’s release. The Motorola Devour is even worse. It came out in March 2010 with 1.6, and never got an upgrade beyond that.
Phone owners under contract should get upgrades throughout their 2-year contract lengths. These Android owners, and others, got screwed.
Contrast, only the original iPhone, last sold almost three years ago, can’t take the latest iOS. Compatibility of the current iOS version goes back to the iPhone 3G released in mid 2008.
And there's the real nut in the Android/iPhone world.. Apple has nothing preventing it from directly interacting with the end user. Most other manufacturers are tied to the carrier as the interface, and since the carrier pays for the updates, and then pays even more to have their people test and add in their crapware, the opportunity for orphan devices grows exponentially.
The closest thing in the Android world to the iOs update cycle is Cyanogen's roms. If you're lucky enough to have a phone that can be rooted, and has these roms ported to it, you're going to have a phone that can last a good long time. I'd still be on 2.1 if I was waiting on T-mobile to update my phone, whereas I've been on Gingerbread for a month now, and had wifi calling for the last week, simply because of the efforts of these secondary developers.