I find people often assume that just being a developer on the CLR means you somehow know everything about the CLR there is to know. I only wish!

First, the CLR is a very large problem space and there's a lot to learn: 5 ECMA partitions. Multiple languages. Many unmanaged APIs. The BCL / FX. And there are many technologies building on that like ASP.Net and Visual Studio. 

Also, working in the low-level engine siphons off resources from learning other areas. For example, time that I have to spend making sure each of the 27 steps to set a managed breakpoint work  is time that I can't spend becoming an expert in ASP.Net or other technologies.