I've been making games for close to 15 years on the consoles and PCs. I am new to the iPhone, but as someone that has spent years worrying about performance, I can tell you that the hit you will take with objective-c is anything but "negligible". Making function calls (message passing) is a big hit, don't let anyone fool you. Making a obj-c call is 5 times slower than making a virtual function call in c++, but many times slower then making a strait function call (we avoided virtual functions in console games for this very reason).
Also remember that every member variable that is part of an obj-c class gets wrapped in an accessor function, so just accessing a variable from another class invokes a obj-c function call and due to the nature of obj-c, the compiler can't optimize accessor functions away like it can in c/c++.
Stay far away from NSArray and the like, these are very slow. I use stl containers for everything. Mixing obj-c and c/c++ is easy and seamless. Just create .mm files instead of .m files and you're good to go with the stl. If your project already has .m files, just rename them.
I like objective-c and enjoy programing in it, but I treat it like a scripting language. I code a lot of the game logic in obj-c, but ALL the backend "engine" functions are c/c++.