Both of your points are right, but I'd like to point out that regarding:
How does new browser feature X prevent a developer from doing any of these things?
A moratorium on new features probably wouldn't help, but the reality is that web developers are focusing on new shiny browser features that allow for deeper native integration, rather than on the core elements of the web that work and carry greater usability gains, like offline support.
That's a good point. I can see a progression like: developer finds new feature X that solves problem Y, developer finds that feature X is only supported by 20% of customer browsers, developer adds polyfill in XXX kB, buggy javascript library with other performance-related side-effects.
Maybe the issue is just educating web developers about what's available, and the non-obvious side-effects using feature X.
Here's what I'd like to see: organize a site like caniuse not by feature, but by tiers of support in the entire population of installed browsers. Something like:
Supported by 99.99% of user-agents: image tags, ...
Supported by 95% of user-agents: XHR, ...
How does new browser feature X prevent a developer from doing any of these things?
A moratorium on new features probably wouldn't help, but the reality is that web developers are focusing on new shiny browser features that allow for deeper native integration, rather than on the core elements of the web that work and carry greater usability gains, like offline support.