I just got to work and plugged my surface pro into my external monitor. It didn’t switch inputs immediately, and I thought “Linux would have done that”. But would it?
Nope. My laptop for example doesn’t automatically use an output when plugged in, but that doesn’t bother me because I know other DEs would do that, and it’s my choice of having a minimal window manager that causes that.
And this goes into your next point, because I know that this comes from decisions I made, I’m okay with that. I also know I could probably fix it somehow, even if just by running a script in the background that checks if an output is plugged and tries to use it.
And for me that’s the big difference. As a general rule when things break or don’t work are not the fault of Linux as a general, but of a specific piece of the stack, and more often than not it’s because that piece was backwards engineered without any help from the manufacturers of the hardware it’s meant to be controlling, so I can be very tolerant of these errors since the bad guys here are the third-party who’s refusing to make their things work on Linux. But even things that don’t work as I want to, I can make them do so, and that’s a huge change in viewpoint.
In other words, on Windows I used to be of the thought of things you can do, and things you can’t, with time I noticed that in Linux this thought shifted, to the point that the only question I ever ask myself is: “HOW do I do this?”. This implies that there are no impossible things in Linux, which is obviously false, but I would argue that the correct way to think about this is “things that are impossible on Linux, for now”, and that’s a huge difference, because Linux is always evolving and getting better and better, things you thought are impossible now might be trivial in a few months or years whenever someone with the knowledge to fix it gets bothered with it.