Ultimately all systems are just collections of other tools with their own version. Assessing the user impact depends a lot on what the user wants to do.
For instance in windows rs1 (early win10) and rs4(later win10) has pretty significant changes to the low level memory architecture, stuff like drivers is generally going to have much better compatibility between rs4 and sv1 (win11’s first big update) than between rs1 and rs4. However sv1 changes the right click menu so an end user is likely to believe that is way more different, and from their perspective, perhaps they are right.
Likewise on Linux stuff like your x11 (and especially if you go from x11 to wayland) is going to matter more for your user experience than the overall os version. To some users their browser version might just be the most important thing. Windows has a bit of an inherent advantage here in that a given windows version has many of its components (wddm, kernel etc) fixed for a particular os version, while in Linux you are more free to choose.
Version numbers are inherently technical and all the end user should care about is whether they are running the latest for whatever level of risk they can accept.
I’ll also add that for many users a new big update once a year is a good thing to be looked forward to. I don’t think there’s really a failure of communication here so much as a compromise of many different needs and I certainly don’t think the Linux version number is having any sort of impact on Linux adoption rate.
I think there’s also an undercurrent here of the “users find numbers scary” thing. I think this a generally patronizing idea, and in my experience non technical folks prefers the straightforward numbering scheme and understand major.minor style version updates over the code names (e.g when talking android for instance I have found android 10 is a lot more identifiable than android p, which has more recognition than android pie. Which probably explains why Google discontinued the code names thing). However if you are still not persuaded, then ubuntu does an animal code name thing.