Lately, it seems that explicitly declared instance variables in Objective-C are considered a thing to avoid, with the preference being to use "private" properties, i.e., properties declared in a class extension in the .m file.
The last example of this is the WWDC '12 presentation on advances in Objective-C.
What I haven't been able to find is a rationale for this preference, and I have searched a lot. It obviously provides a sort of solution to the fragile base class problem, but that was already solved with Objective-C 2.
Is there some crucial piece of documentation that I have missed, or is there a simple explanation that a kind soul could provide here?