I'm going to throw a wild suggestion out there... Android developers are doing too good a job at supporting the different OS versions out there and I think that is actually propping up fragmentation.
I know some people who've bought Android handsets that don't know anything about OS updates or don't really think much of it - example, I told a colleague that 2.3 was available on their SE X10 but they didn't even bother with the upgrade at all in the end. I'm guessing the reason would be that their phone still works; that they are still able to use it day-to-day how they normally use it. In other words, they hadn't noticed any negative impact on their user experience. That's not surprising since the OEMs and carriers (generally?) don't go out of their way - like sending text messages or notifications direct to the phone - to make sure owners know about upgrades. So most people who aren't interested in tech (they just want a device that works and does various things) end up using their phones like smarter feature phones. That is, they just buy an Android phone, download apps, use phone and said apps and when they're done with the 2 year carrier contract, look for the next one.
Having said that, I'd wager that slowly but surely people will catch up and come to understand the importance of having an up-to-date OS on their smartphone. Sure the Android ecosystem continues to grow at an insane speed but I think that growth has come on the back of many first time smartphone adopters. So while it might look like fragmentation hasn't hurt Android, one has to wonder how much longer that will continue to be the case before the market matures and people wise-up to the poor upgrade practices the OEMs and carriers have been guilty of to date. At some point, the 'weight' of fragmentation will be too much for even the best app developers to handle (if they don't start giving up on older Android versions) and people will wonder why their 1 year old phone doesn't run the apps they've updated like they used to and learn that it's because their stuck on an old OS.
I can personally cite having had Google Maps crash/freeze my Defy many many times - imagine that, an Android phone (stock or OEM-bastardised regardless) not being able to run Goolge Maps! - because Motorola can't be bothered to upgrade it beyond Froyo, let alone provide a bug fix (thankfully Google have at times done something at their end to patch the issue though I'm never sure whether I should update it with each new release that comes out). Instead, Motorola see fit to release 'new' Defy's that run Gingerbread: the 'higher spec' Defy+ and even a lower spec Defy Mini... but I digress! Dont' even get me going on Google's yet to be completed buyout of Motorola!!
Why don't I just buy a Google Nexus? I don't appreciate how Google has done little to really address this issue and how the fragmentation that produces just plays into their hands. Right now, I'm holding fire on my second smartphone and first tablet purchase until more (concrete) details emerge about the next iPhone, Windows Phone Apollo, and by that time, Jelly Bean and how the OEMs have gone with their promised ICS upgrade schedules. Yep... I hope my Defy and the apps I've installed hold out until then.
PS - I'm not holding out much hope for Android given Eric Schmidt recently played down fragmentation at CES as mere 'differentiation'.