The state of things in the Android mobile device market is nowhere near the same, and it makes a huge difference from the perspective of the developer. They can't just "choose" to go Android. They have to choose to go "Android for Kindle", or "Android for Samsung S4", etc, etc, etc. Yes, I know that there will be only modest tweaks for each variant, but when the number of variants are large, it drives cost up (especially when it comes to test and ongoing support). Fragmentation isn't just a word, it's a way of life when you are developing Android products. So, your analogy to the Mac/PC world is broken in a very important way.
This just isn't true at all. Windows has and retains a much wider range of hardware that it runs on. The reason it does so is because there are specific interfaces to write drivers for.
Android works in a similar fashion, but your choice is basically between using Google's Play APIs or going with an alternate market and app framework like Amazon. The situation with weird bugs on specific platforms is basically identical to Windows.
Fragmentation is a real thing, but because apps target the lowest version they need for support, and the market is automatically filtered of incompatible apps, it's not as bad as people make out.