Ce que tu essaies d'expliquer c'est que de toute façon le code dynamique créé passe par les mêmes fourches caudines que le code initial et qu'il n'y a donc aucune raison de les traiter différemment puisque la vérification du JIT suffit offre toutes les garanties nécessaires.
Sauf que d'une part tu n'es pas à l'abri d'une défaillance du JIT ou des fonctions natives du runtime et que d'autre part MS cherche à virer le JIT. Ils sont en train de le virer sur Windows Store et ils le vireront sans doute sur Midori.
Bref, la raison pour laquelle le code dynamique est en train de disparaître sous dotnet c'est vraisemblablement d'une part à cause du DEP (tout processus est scellé sous Midori et le C++ est également interdit de code dynamique sous Windows store il me semble) et d'autre part pour ne pas avoir à charger un JIT et le bytecode des biblios.