That is because there are only really three versions of the framework out there: 1.1, 2.0 & 4.0. The compiler has changed (see: var, LINQ) and libraries have been added but the CLR hasn't changed much. Take a look at how C# implements lambdas - it's all compiler magic.
To which I say that is exactly my point. It's well thought out and there are essentially only 3 runtimes to target while still having modern language features. That said- I work in a .NET shop and work with my share of MSFT snobs that don't really see a world outside of .NET. I don't want to pin my career on that- so I try to stay reasonably current on non MSFT technology. Luckily it's mostly free. :)