@teh_chem: While that is an issue, this applies to all Android phones 4.1 and above which is estimated to be 45% of the current market share. Phones with lower version numbers are in most cases too old to be supported. Apple releases a new phone every year to keep up but the previous versions have less and less features. The rooting community has done amazing work that lets me keep updating my 2 year old phone with the latest software even when it's not officially supported. I'm not coerced into buying the latest device every year just so I get the latest software, except my carrier's upgrade cycle is 2 years so I have to pay the off-contract price of $500 every year. I paid $200 2 years ago and I have no need for an upgrade because I *am* able to root and install the latest update as frequently/infrequently as I want. The act of rooting and installing new software has been drastically simplified, tools like OneClickRoot and Nandroid mean I can install a new operating system in 3 steps and have a backup in case of a problem. My next device will most likely be a direct-from-Google device for the off contract price of $349 and I'll use that for the next 2-3 years again, something that wouldn't be possible without the hard work done by *volunteer* programmers on places like XDA Developers or CyanogenMod.
Yeah, I understand what you're saying. But you don't have to buy the latest device to get the latest software on Android. Take the Samsung Galaxy Nexus--it was released in ~Sept 2011. It has the latest version 4.3, and it's going on 2 years old--still getting current updates (it's capable of running it just fine). Whether it gets the updates quickly is a question of whether Samsung/Google releases a version to providers, and whether providers push it to their customers on a timely basis.
Of course on low-mid end devices, some just can't run later versions of Android. But just like iPhone, for example, the 3gs can't run the latest version of iOS either. But it still doesn't change the fact that the major problem with Android is such a broad hardware platform spectrum, and handset manufacturers are not always the most interested in continuing to support devices that they already released, and providers aren't putting much resources into handling updates for devices that might compose a small percentage of their userbase.
Take my situation: I got a LG Optimus G back in January of this year--by far the best phone I've ever had. The phone itself came out in Nov. 2012, so it's not particularly old, and as a high-end phone, has spec's that can carry it through many upcoming releases of Android at release. I'm on Sprint (no problems with the coverage for where I live). LG--despite having a bad track record of not supporting their devices on a timely manner--did eventually push an OS update from 4.0 to 4.1.2 in the US to the different providers. Sprint eventually pushed this update to their subscribers back in March 2013. My phone--a new and high-end phone at release--is STILL behind the OS update schedule than the 2+ year old Samsung Galaxy Nexus that my wife has. Phone age/price/capabilities or not buying the most current handset available is not the problem with updates. It's that the Android team creates a new release, and they throw it at the various handset manufactures and say, "Here, manufacturers, take this and update your devices." Then the handset manufacturers sit on it, tweak it, and hopefully eventually throw it at the providers and go "here, providers, take this most recent update we made, now do whatever you want with it." And then the providers take it--maybe they don't even bother trying to deal with some of their customer devices depending on whether it's worth their time to update a small percentage of their userbase. It's not the best set-up for keeping devices updated, is what I'm saying. Of course the tradeoff to this model is that the customer gets a nice wide array of hardware devices to choose from. But they're starting to catch on that if they want the updates, they're mostly limited to buying from a small selection of big-name devices. Or they can take the chance and root their device and try various ROM's. Which I don't have a problem with people being able to do, but that should not supplant a good support ecosystem.