I would dispute the contention that these techniques are "abuse", indeed I feel that they are now central to efficient, maintainable coding in Cocoa, and their virtuousness is implied by:

1. The very nature of object properties/accessors.
2. ObjC's "Duck Typing"
3. The existence of the KVC array and set "operators"
4. The "@" prefix KVC override on the NS collection class clusters

BTW: makeObjectsPerformSelector:withObject: where the second param is a mutable collection is a fine way to get the return values of a method call. It can be much faster (but much less obvious) than more conventional strategies for binning/indexing.

Guy English's extensions to the concept are intriguing, but swizzling the behavior of KVC seems like a pretty hazardous notion for production code.