Btw, mono seems to workaround it by something like this:
if((a.GetMethodImplOptions () & MethodImplOptions.InternalCall) != 0) {
MethodBuilder.SetImplementationFlags
(MethodImplAttributes.InternalCall | MethodImplAttributes.Runtime);
}
I'm not sure whether it is correct or not though...