Hello! , I have been programming games for iPhone for more than a year now! I started doing most of the things in Objective-C but then I learned that for most graphically ( or computation ) intensive games, Objective-C is not really the best option. There are a lot of paths like Pure Objective-C for logic, and inline C functions for the more "intensive" parts of your game, Obj-C does also let you to use C++ files ( for the model classes for example ) with Obj-C++ (which is basically a .m obj-c source coude file but renamed to .mm for obj-c++ ).
Ok, after that, Cocos-2D in my opinion is a wonderful library, it's mostly written in Obj-C but has pure C parts for expensive stuff ( physics it's chipmunk physics and Box2D, they also have a hash table part written in pure C to avoid calling NSDictionary a lot ). Cocos is not hard to use, and you can get a nice game working quite fast!
You can embed the whole Cocos-2D to a project of yours, or just embed some useful parts of it ( like Cocos-Live for On-Line scores, the Texture loaders, etc ). You can also start working directly from the Cocos-2D Xcode project and remove what you don't need ( like examples etc ).
For a simple explanation of the cocos-2D license , read Here !
About OpenGL, with Cocos you won't need to learn it deeply, unless you start getting into very custom stuff.
Having said all that, here are my recommendations :
1) GUI takes time, a Games GUI can take a lot ( even 50%! ) of your source code actually... so consider that if you are going to have menus, etc etc.. and adjust your time schedules to make the GUI coding fit!
2) When you have learned Cocos a bit, start playing with OpenGL, it's a wonderful ride, and it's really great to know a bit about the "Engine" of your "Car" so if your "Car" (cocos) break's or doesn't do exactly what you want, you can always tweak here and there.
I hope this proves helpful for you.