Genuine question: How are the restrictions placed by Apple on what's allowed in the App Store any different then the restrictions placed by console owners on what's published for the XBox or PS3? For example, the XBox XNA community games system requires people to use .Net - there's no technical reason for this (the XBox is clearly capable of running native code). However, Microsoft/Sony/Nintendo still seem to be allo…
With respect to game consoles, Microsoft/Sony/Nintendo have their own acceptance processes, but they do not require you use a particular compiler or code in a particular language, all they care about is the end product. A lot of the multi-platform games these days are developed using tool-chains specially built for the purpose, so that, for example, the PS3 release and the 360 release are just different builds from the same code base rather than awkwardly separate development efforts as they would be otherwise. Such tools vastly ease the burden of releasing to multiple consoles and in many cases enable developers to do multi-platform releases that they would otherwise not have the resources to do.
Apple's licensing restrictions make this sort of thing impossible. You can't reasonably build a tool-chain to target, say, both iPhone and android development from the same code base. Not and live up to Apple's licensing restrictions.
And that's very much anti-competitive on Apple's part. It means that more and more people have to choose, have to be "locked in" to one particular platform.