I'm considering writing a similar post. For me the biggest write was how steep the learning curve for the whole Cocoa (referring mostly to UIKit, but also to a few other pieces) shebang was. It's not even that the system is badly designed (arguably it could be a lot better though) but that the documentation is so so bad. API docs are okay, but don't give you the big picture. Their reference guide, on the other hand are so abstract and 1000-mile high that you don't really get practical value out of them.
After that, the system with small inconsistencies, imprecise documentation and undocumented behaviour. In short, it's not very "systematic". You don't feel there's a well thought-out system that will allow you to predict what will happen. This is especially true when talking about layout, but also other things such how views / controllers interact. There's not a culture of "best practices", so interfacing with someone else's UI libraries can be hell.
@Author: Any thoughts about this?