Apparently, the restriction is on executing from memory, that is code created by reflection (JIT)
The solution here is to interpret .NET IL, like it was done in the first version of Java :)
But it is more "clever" by using common pre-compiled blocks of code.
So if this is acceptable by iOS, many other p-code languages could be used in the same way.
A .NET IDE for the iPad? - Exploring Continuous with Frank Krueger on the Hanselminutes Technology Podcast: Fresh Air for Developers
"Frank Krueger is well known for his popular iOS applications like iCircuit and Calca. Frank creates his apps with Xamarin and C# or F#. But why not write these apps for the iPad *on the iPad?* Frank just released the incredible new apps Continuous for iOS. You CAN write .NET on an iPad, productively."