No está documentado, pero parece una de las optimizaciones en .NET 4.5. Parece que se usa para cebar la caché de información de tipo de reflexión, lo que hace que el código de reflexión posterior en los tipos de marco comunes se ejecute más rápido. Hay un comentario al respecto en la Fuente de referencia para la propiedad System.Reflection.Assembly.cs, RuntimeAssembly.Flags:
// Each blessed API will be annotated with a "__DynamicallyInvokableAttribute".
// This "__DynamicallyInvokableAttribute" is a type defined in its own assembly.
// So the ctor is always a MethodDef and the type a TypeDef.
// We cache this ctor MethodDef token for faster custom attribute lookup.
// If this attribute type doesn't exist in the assembly, it means the assembly
// doesn't contain any blessed APIs.
Type invocableAttribute = GetType("__DynamicallyInvokableAttribute", false);
if (invocableAttribute != null)
{
Contract.Assert(((MetadataToken)invocableAttribute.MetadataToken).IsTypeDef);
ConstructorInfo ctor = invocableAttribute.GetConstructor(Type.EmptyTypes);
Contract.Assert(ctor != null);
int token = ctor.MetadataToken;
Contract.Assert(((MetadataToken)token).IsMethodDef);
flags |= (ASSEMBLY_FLAGS)token & ASSEMBLY_FLAGS.ASSEMBLY_FLAGS_TOKEN_MASK;
}
Sin más pistas sobre lo que podría significar una "API bendecida". Aunque está claro por el contexto que esto solo funcionará en tipos en el marco mismo. Debería haber un código adicional en alguna parte que verifique el atributo aplicado a los tipos y métodos. No tengo idea de dónde se encuentra, pero dado que tendría que tener una vista de todos los tipos .NET para tener una oportunidad de almacenamiento en caché, solo puedo pensar en Ngen.exe.