I'm certainly not trying to dispute the fact that the iPhone has some fairly powerful pieces of hardware. Unfortunately, there wasn't a lot of thought (nor real design) put into making all of the pieces work well together. Independently each piece is fairly meaty (at least the GPU). However, when you throw the whole thing together like a bunch of legos, things tend to not work well together. Your system as a whole can only run as fast as it's weakest link. For example, having a 128 bit internal GPU doesn't help too much when the CPU is only 32 bit. The data has to be fed to the GPU before it can do anything with it. Also, although you're probably right about the denser code in the ARM, don't confuse the term "denser" with "optimized", nor "efficient". Frankly, both MIPS & ARM are poor implementation of an already inferior architecture (RISC). If they were going to use a RISC style processor I would have hoped that they at least chose powerPC. That was their flagship architecture for so many years after all. Of course, it would probably have taken too much time and money to design an ultra-low power version, neither of which would be acceptable when Apple's trying to push the product out the door ahead of schedule.
The PSP hardware, while sub-par is some regards (by today's standards), was designed very well as a system. Plus, it doesn't have to load balance between 20 other tasks like the iPhone does. I think this is why you're simply not seeing the same quality of games on the iPhone as you do on the PSP. Unless some serious redesign is done in terms of hardware, I don't think you ever will.
I think that what Antilycus is saying has a lot of truth to it. Unfortunately, The iphone really was just thrown together as quick as possible, and now they're letting the customers debug the system for them. I suppose this is the hardware equivalent of agile development, which is all the buzz right now. 😉