So from my understanding (one of) the biggest allures of Obj-C is the dynamic, message-passing runtime. 

How's this and other features overall beneficial to Cocoa development? Why was Obj-C used for Cocoa dev and not C++/C?

Basically I'm trying to understand how such language features are actually beneficial in terms of when actually solving a particular problem in terms of OSX or iOS application.