As an aside, this got me looking at the [objc source](https://github.com/bavarious/objc4). It's clear now why `-respondsToSelector:` is failing in the first place:

```objc
- (BOOL)respondsToSelector:(SEL)sel {
    if (!sel) return NO;
    return class_respondsToSelector([self class], sel);
}
```

The KVO subclass overrides `-class` to return the original class, which isn't aware of the method we're adding to the subclass.