I haven't read too deep into the Apple guidelines yet for writing and distributing iPhone apps. Could you expand on why Apple wouldn't allow an app written using something other than Obj-C to be distributed through iTunes?
I've been learning Obj-C, but naturally if I could use a language I already know, I could avoid a huge learning curve and get right into creating an app.
"No interpreted code may be downloaded and used in an Application except for code that is interpreted and run by Apple's Published APIs and builtin interpreter(s)… An Application may not itself install or launch other executable code by any means, including without limitation through the use of a plug-in architecture, calling other frameworks, other APIs or otherwise."
Of course, none of Python, Perl, or Ruby are "interpreted" languages. I'm not sure I see any distinction between a compiler (or interpreter) and any other program. Programs read data, and produce a result. Compilers read data (source files) and produce a result (the program described by the source code). HTML in Safari is conceptually the same as a python compiler.
Anyway, who cares about Apple's proprietary platform? Yeah, the iPhone is cool, but if you value freedom over looks you should try OpenMoko instead. I have one of the Neos and it is pretty nice. (Not a lot of app development going on in dynamic languages, unfortunately; most everything is plain C. Yuck.)
I don't think it applies here - the python apps don't download python code and then execute it, they are bundled with it (or the python compiles, I don't know).
"An Application may not ... launch other executable code by any means"
This wording, taken at face value, means that you can't deploy a Python app. Assuming that the CPython interpreter would be the "Application" that is written using the iPhone SDK, then that Application would not be permitted to launch other executable code (i.e., your .py or .pyc files).