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.