Windows has had terrible naming since NT -- back and forth between names/numbers/years (or nonsense like "Anniversary Update" or "R2"), have a completely different scheme for Server vs Desktop, and if you look at the corresponding kernel versions of these releases[0], the major/minor bump in versions seems completely arbitrary.
.NET is even worse. Framework vs CLR is a mess [1]. Core started over at 1.0. .NET Standard brings some consistency to it all, but also introduces another versioning scheme with overlapping numbers that mean different things[2].
But even other divisions do this: Xbox -> Xbox 360 -> Xbox One.
[0] https://en.wikipedia.org/wiki/Windows_NT#Releases
[1] https://en.wikipedia.org/wiki/.NET_Framework_version_history...
[2] https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introduci...