Apple prioritizes the end user experience over the developer's experience and aren't shy about rubbing that in. More than that, Apple prioritizes having control over its own fate, and if developers using intermediary layers have to suffer for Apple to retain its relative autonomy then so be it.
Microsoft's philosophy has the logic: if we have all the developers, then the end users will flock to us, so we're going to cater to the developers. Apple's philosophical logic is: if we make something that 'just works' and that all the end users lust after, the developers will come to us, so we have to retain our ability to push things forward.
I'm not sure which philosophy, if either, is better overall. But it seems pretty clear which one angers developers more.
But you expounded on my point nicely -- Apple and MS have different philosophies about developers.
The moral: Never forget that people really do like using shiny things a lot better in many cases.
Of course, I firmly believe this is as it should be.
2) Marketers, 3) Users
3 is 2. The hype about iPhone and iPad was there before Apple said a word about these products.