We do effectively the same thing already for KVO subclasses, see the `swizzledClasses` set. Semantically, they're doing the same thing, so we should implement them the same. I subjectively like the associated object approach.