Here's my own slightly out of touch that simultaneously holds true for me and doesn't for a very large part of the populace:

1) XFCE is the pinnacle of desktop environments: https://xfce.org/

It's extremely stable, looks good, works fast and is customizable. It works equally well on old underpowered devices, modern ones, as well as servers (should you ever need that sort of thing for whatever reason). It also has plenty of widgets without any of the modern bloat.

2) LibreOffice is great open source office software: https://www.libreoffice.org/

It started out as a fork of OpenOffice and has since become the mainstay under GNU/Linux distributions. It does word processing. It does spreadsheets. You can make drawings and visualizations in it. It does presentations. There's even a simple database offering in there, a la MS Access.

It also supports MS Office formats for the most part and can convert them to open ones with very few issues! The performance is also better than any web based offering. Plus, it's cross platform!

3) Thunderbird is perhaps the best mail client, regardless of platform: https://www.thunderbird.net/en-US/

It's stable, reliable and has its origins in Mozilla. It does everything i'd expect a mail client to do and i've had no problems with it to date. Plus, it's cross platform!

As for mail servers, i think that mail servers are a horrible mess for the most part, regardless of which platform you need them on. I think that your best bet in that regard is just using a Docker container that packages all of the components that you'd need: https://github.com/docker-mailserver/docker-mailserver

4) This is absolutely true, but then again, you can say the same about any piece of unpopular hardware.

Linux on mobile phones is a mess. Then again, even FreeBSD on certain pieces of desktop hardware oftentimes fails to work as well. Many years have passed, but this can still be problematic, given that perhaps we treat drivers wrong as an industry.

My cheap Chinese netbook (i'm not too well off financially) had the mouse not work on Fedora and some other distros. Sometimes the audio wouldn't work. Now, sometimes the mouse gets stuck in a state where it acts as a scroll wheel. In Windows, function keys worked as they should (after pressing the Fn key you could access them), but in Linux distros it was flipped and i found myself having to press Fn to use the F1-F12 keys, with no option in BIOS to flip this. The fingerprint scanner just doesn't work and isn't even detected. The Wi-Fi drivers didn't work and i had to compile them from some random GitHub repository that i found online. The distro didn't have GCC and the netbook doesn't have an ethernet port so i had to suffer through doing an air gapped install, which was problematic because of the dependencies. I got it working for the most part, but it was a pain.

Things really should be better. But that can probably only be achieved by either open drivers and open standards for most of the hardware out there, or by killing off about 75% of the hardware vendors out there, which in practice simply means that you only have to buy hardware that works well (e.g. Thinkpads).

5) The choices that i find myself making are rather easy - either i use open source software, or i do less.

However i agree for the most part with the observations about Linux not being an awfully popular platform for porting applications. I do think that this has three main causes: packaging being somewhat difficult to get started with (as well as needing to support a variety of distros), the GUI frameworks across Windows/Linux/Mac being a total mess and there being no "good" options out there, and then there also really not being a large commercial effort to make the struggle of porting something over worthwhile.

Interestingly, the GUI framework situation isn't such a large issue if you go with something like Lazarus, JavaFX or even Swing for your software, but those can be ugly, so people don't. Still, i'd argue that either of those have the potential to be better choices than Electron apps.