Many methods in the BCL are marked with the [MethodImpl(MethodImplOptions.InternalCall)] attribute.
This indicates that the \"method is implemented within the
I think a big reason is that it's quite hard to create a new IL instruction and it could affect a lot of tools, including external ones (ILGenerator, ilasm, ildasm, PEVerify, Reflector, PostSharp, …).
But creating a new InternalCall method? That's almost as simple as writing the method in C# (I assume, I didn't look at Rotor to verify) and it doesn't affect anything.
And it's not just about creating it, I think the same applies to maintenance.