NSCFDate
Malte writes about an NSCalendarDate oddity and when I checked out the docs, I saw that the creation methods are declared to return id instead of objects of the class in which the method is defined. This is clearly against the conventions of Foundation; always when doing [MyThing thingWithString:@"hello"] you would rightly expect to get a MyThing instance back – or at least an object of any class that doesn’t violate the Liskov Substitution Principle (PDF).
The NSCFDate class seems to be a private subclass of NSDate (according to this post), so I don’t understand how this could be consistent with the LSP – for example, if you have added a method in a category to NSCalendarDate, it wouldn’t be invoked if you send the message to what in fact is an NSCFDate instance.