I have plenty of iPhone apps that were first-generation that still work. That sounds like an unlikely situation in the android world. I also have apps that work on all versions of OS and hardware. I have a few that require specific features (GPS) that don't exist on 1.0 hardware...so obviously don't work on newer devices. I had a few apps (WiFi scanners) that died under OS 3.0 that used to work.
I have several apps that I ran on my Android 1.1 G1 that run perfectly on my Nexus One running 2.1. In fact, of the apps I used to use on my G1 that I have tried on my N1, none refuse to work. Now, go beyond the "reference" phones from Google and, yes, you'll probably see some problems. The more handset manufacturers fuck with the OS, the more likely they are to break compatibility. But they're shooting themselves in the foot, and the Android Marketplace will (hopefully) be enough of a reason for them to not screw things up.
As an Android developer, I feel this fragmentation crap is overblown. So what if only x% of the Android phones out there can run My Amazing3DGPSSocialNetworkingApp? Anyone evaluating the potential market for their app is going to know to check what portion of the market can actually use their device, and if they don't know to do that then they have bigger problems. If that % isn't big enough, you rework the app so that it does work on new handsets, or don't create it. The more advanced the requirements of your app, the less likely your target audience is going to be using a phone not capable of running it anyways. Advanced features mean advanced users. Advanced users use phones that support advanced features.
As an aside that has not much to do with the actual discussion, I have apps, like Wifi Tethering, that not only work perfectly on multiple phones, but CANNOT be killed because of how open Android is.