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."

But once Everything Else becomes the platform of first choice for consumers and developers, Apple can simply remove the clause from the dev agreement and join the band wagon, having held their lead as long as possible.

Unlikely. Suppose Apple pull this strategy, and nobody else does. Developers are then in the position where they can code once for iPhone, and once for anything else (supported by cross-compiling frameworks). If iPhone then slipped from being the #1 platform, you might wonder whether those frameworks would take the time to support it, given the precedent Apple have previously set.