John Gruber has found out that cross-compilers are no longer allowed in iPhone OS 4.0. "My reading of this new language is that cross-compilers, such as the Flash-to-iPhone compiler in Adobe's upcoming Flash Professional CS5 release, are prohibited. This also bans apps compiled using MonoTouch - a tool that compiles C# and .NET apps to the iPhone. It's unclear what this means for tools like Titanium and PhoneGap, which let developers write JavaScript code that runs in WebKit inside a native iPhone app wrapper. They might be OK."

Baring in mind that the ObjectiveC runtime is fully accessible in C, and C is a language that Apple would seem to accept - the compiler simply needs to output plain C.

Nope. The wording is that "Applications must be originally written in Objective-C, C, C++", etc. Emphasis on "originally" - it's clearly the same intent as the GPL clause that defines the code as the stuff human developers actually work on, not the output of some processing step.

The purpose clearly is to force people to use Apple's APIs, to make it harder to build a product that can run on competing platforms as well.