The idea is that "new versions" of Windows are still Windows 10 but get delivered as content updates. And we have ended up with a new "naming convention" of sorts- Redstone, Redstone 2, Anniversary Edition, etc.
Then 10 came out because they claim that scripts that check for (Windows 9) as a lazy shorthand check for Windows 95 and Windows 98 exclusions was the issue so they decided on 10.
Ah, I wondered if anybody would mention this. That is more of a "Just so" Explanation. No modern applications which are still usable on Windows 10 do this- or rather, no significant number of them do. With tools like "Grepcode" which searches through Open Source repositories you can find loads of examples, but what you find when you look into it deeper is that they are Linux tools that were forked from codebases that ran on both, and thus the windows codepaths are pretty much as they were, very old abandonware projects that pretty much nobody uses, or very old software revisions. For example there are current text editors listed in grepcode that do that, which seems spooky until you note that it is a SVN revision from like 2003.
It's also pretty much exclusive to Java software, so it doesn't even find itself covering a particularly large subset of application programs altogether.
The numbers are all marketing now, IMO. Pretty much the same as 95/98/etc.
I personally like the names and numbers attached to the Windows Name as for it shows clearly which is old from new.
That's a good point but I think in some sense things are starting to level off somewhat in terms of Windows and it's matching with Hardware capabilities. It's sort of like how MS-DOS 6.22 could (can?) still be installed and run on a much older IBM XT.