> it would be best if developers all over the world boycotted proprietary platforms entirely.
Note that Linux and Android, from your list, are open source.
> For true cross-platform, you need to develop for 5 platforms
I would argue that anyway, you should develop for multiple "kinds of devices". Writing the same code for a desktop computer and a smartphone is fundamentally a mistake: I don't want to slide big buttons with my mouse.
So first, you need to design the UI multiple times: for desktop, for smartphones, and for tablets. If you want a smart watch, you need another design for it. Web apps don't solve that better.
Second, if you can write a webapp that works everywhere, then you can write a native app that works everywhere. I don't see how that would be different. The problem is generally that if you run the exact same code everywhere, then it's not a good experience.
Android is closed-source but with some open-source components, for only some of which they'll actually follow the license and give you the source code.