Except for the last sentence, most of this is wrong in some way or the other.
>- About 90% of the (GUI) software ever developed? I'm happy to hear that there are quality Linux alternatives nowadays, but there's just many order of magnitudes more choice on Windows (and far less, but still more on Mac). For a lot of categories, this might change in the next decade (Electron and other cross-platform frameworks, tech like Proton) but for things like media editing or even image viewers, or until there is some tech to seamlessly emulate, this won't be a fight.
I think this is highly subjective, sure if you need some specific piece of software (e.g. photoshop), but for everything else you are pretty much covered. In particular free software for common tasks like image viewing is much better on linux, on windows everyone uses some piece of software they received with some camera or similar, which is often unmaintained and riddled with bugs.
> - Trivial app portability - I absolutely love the concept of portable Windows software. Have a single folder with configuration and binaries, that can run for sure anywhere (give or take a .Net/VisualC install) - and you can achieve this for 90%+ of all available apps.
App binaries and configuration in the same folder? On my windows install there are lots of files in some subfolder o f
C:\Users\<Username>\AppData\
and C:\Program Files\Common Files\
And finding the correct subfolder is not always trivial if you try to nuke your configuration. Mind you that is not necessarily easier in Linux either however things got better and more and more software adheres to the XDG standard locations.
>With a some sync tool it's simple to have the same (as in reproducible/copiable) work environment on many machines (in the context of ad-hoc gui user applications). I know this concept isn't really transferable to Linux (separated locations per app, "just build from source") and there are attempts (Snap) but due to the fractured scene and #1 it's not that practical for end-users.
Syncing your work environment over to a different computer is trivial in Linux compared to Windows (not that this is a very typical end-user work case either). Sure if you put a different distro on every computer it's not so easy, but why would you do that?
>- Hardware compatibility - cool that you didn't have device issues, but this could be because you just don't use non-mainstream hardware. Even when I did, a lot of special functionality was bound to (Mac/Win) drivers. Sure, not Ubuntu's fault, but still.
Yes you still run into the odd bit of hardware that doesn't work, but that's quite rare even on very recent laptops. This is also not a solved problem on windows either, if you don't use the pre-installed OS on your windows PC then installing a new version can result in quite a bit of chasing drivers.
There are issues with Linux still, but the ones you listed are not among them IMO (and Windows isn't really better on this either). One of the things that I find annoying at times is that developers don't seem to consider upgrades to the configuration files when releasing new versions. After some upgrade the previously saved configuration doesn't work anymore, because the file format changed or parameter names changed or similar. While I suspect this happens in windows as well, it's more of a problem in Linux because one upgrades more frequently.