It's maddening. I wrote a thing about it and other Android issues: http://penguindreams.org/blog/android-fragmentation/
A few years ago I built a nice sms delivery system for installing an app I was working on. Text anything to our number (we had multiple numbers thru twilio based on market). App replies back with a download link. Install. It worked perfect and we could actually tell who requested the app and who installed it. We had around 75k users installing. Not millions, of course, but still, not too bad.
So, it is possible. We also did not have to wait for any approval process. And when the app started up, it checked for an updated version on our system. If there was, the app would then prompt the user to start the update. It was a very nice flow and we had many comments from users telling us that 'it just worked'.
This was app pre-iOS 7 and automatic app update, but it's still being used today.
Deliver the project got easier; "Control the customer" got significantly harder. You've now got someone's app store in the middle of your customer relationships and are exposed to approval drama, various forms of revenue squeeze, and other meddling from the platform owner. What happens if the folks running the platform decide to launch their own offering?
Speaking as another small developer, our solution to the cross-browser feature support is simple: anything that doesn't run on most modern browsers doesn't make the final design. If the customer doesn't bite on basic design, we don't expect a miraculous shift with the latest widgets.