That doesn't mean you can't rate platforms on the degree of fragmention though.
Absolutely. The problem is that people like John Gruber talk about Android fragmentation like iOS isn't fragmented. It is. As you correctly point out, Android has a fragmentation problem that iOS doesn't have.
How long has it been since you found a desktop app that couldn't deal with the screen being resized or with the type of mouse changing?
I still run into applications which assume a minimum screen size, and which are outright unusable when run on something smaller. And applications which don't work well if the resolution changes (somewhat analogous to rotating a phone.) I think that mostly, though, that's a solved problem. Unfortunately, it's solved by adding on frameworks and other abstractions which tend to use up more CPU and RAM. This has the obvious side effects of running hotter, needing more resources, and using more battery (in the case of laptops.) Time will tell whether or not the mobile analogues will be solved in the same way.
The iPhone has kept the variations along these two major axes (screen/inputs)
What input differences exist between iOS implementations?
Apple has also done a decent job of keeping the software platform moving forward for older devices.
I'd say they do better than decent. Their third phone, released over three years ago, will be getting their latest OS shortly. Some of the Apple features will be missing, but the developer features (the APIs) are all there, which reduces the magnitude of iOS fragmentation significantly.
The problem with Android is in the marketing and the carriers. Marketing, in that "Android Phone" is a meaningless term--you know nothing about the phone from those two words, but a staggering number of people (online, offline, reviewers, marketers) want to equate the term to "iPhone." Carriers, in that they want to act as gatekeepers for updates, and the manufacturers making Android phones don't have enough individual influence to override them quite like Apple does.