Note: I am in no way saying that Apple's stance on this situation is a good one or not, in face, absurd. The iPhone 3G is the last Apple product I will ever buy because of this and other iPod/iPad related anti-developer bullcrap.
What this will absolutely stop is Adobe calling out developers who have added apps to the app store compiled with CS5. Those apps created that way will also be unable to move upwards to the new OS version. I would imagine it will also completely stop Adobe and others from any development on any OS 4 bridge because they would have to agree to the license to test against the actual SDK and they can't do that without legal problems.
(Hint: Apple's version of C is unlike any standard version of C, like C99. So technically, you can't use Apple's tools. Or, you can call anything you want C, just like they do.)
Sure there is an ideal, but practically, there is not consistent definition of the C language.
Apple's C is C99 (as implemented by both gcc and clang). If you wish to take advantage of something like Grand Central Dispatch, they recommend that you do so with their completely optional syntax for blocks (which, aside from being closures AFAIK, are essentially anonymous functions in situ instead of defining a function externally).
You can still use GCD without the new block syntax by using function pointers, leaving you with bog standard C99.
Frankly, gcc implements a lot more non-standard stuff on its own than Apple's blocks have introduced.