I don't think you can work around this with any kind of technology.
I know that what I'm saying is basically anathema for HackerNews, but I think it's the truth.
The Web was successful because it was decentralized and egalitarian. Anyone could run a server. You could access any site you wanted. Everybody could link to everybody else. People loved this and the Web spread for these reasons.
Modern app ecosystems spread because capital wanted a return. It noticed people were getting rich off of this tech thing, and all that money from the rest of the world came pouring in. The defining feature is control: of experience, sharing, attention, and revenue. Because controlling all these things allows capital to extract greater returns.
There are pros and cons to each model, but let's be clear, one was built from the ground up by financiers looking to make another buck. If it's easier to build a bottom nav bar or something, that's incidental to their plans.
Why do you want a bottom nav bar, anyway? If you're truly building for the users, the first lesson is that they want their information on their terms.
That phrase "tragedy of the commons" has an interesting history! It's propaganda used to justify the privatization of common land, according to George Monbiot: http://www.monbiot.com/1994/01/01/the-tragedy-of-enclosure/
What Mozilla (or a new browser startup) should do:
Enable a new type of "extension".
This extension is pre-approved and pre-checked for malware.
This extension lives on the Mozilla cdn and is only downloadable from there.
This extension is automatically installed on a site-specific basis with no user visible UI.
This extension is powerful enough to control the browser and make it resemble a native app.
When a user goes to the website it'll automatically just work just like the native app.
Hundreds of files of abstraction and encapsulation, layers of indirection, tonnes of new nomenclature... and all without any obvious reason other than "that's what works for desktop applications" I think?
Angular 1.x is the example I'm most familiar with (primarily because it was JS and 'easy' for the first 1000 lines), where most of StackOverflow was occupied with the "factory vs service vs provider" question.
to start with, jit compiling applications on a energy-constrained device is straight stupid. you should compile the application for me on some system that isn't already struggling to make it though to day on a single charge. wasm might help some, but pls don't make my mobile do more work than it has to.
#p2p applications often need special capabilities or native libraries to work well (or at all). the web offers some weak apis for this, but really isn't up to par with what i would be interested in using (or building on). again wasm might help here, only time will tell.
finally, web standards move very slowly and really don't exist as a disruptive force. if you need buy-in from all of the major vendors to push new/interesting features through, you aren't going to get much unless it favors them somehow.
Speed, freedom, and usability - choose two, I suppose.