In a CFDictionary you can use non-object keys, and this one does (see the NULL value for the key callbacks parameter).
Thus we can use the selectors themselves as keys, without manually wrapping them in/unwrapping them from NSStrings.
Since we didn’t specify the key callbacks, the dictionary will then use the addresses themselves as hashes/for equality checks—which is correct, since the runtime already takes care of uniquing selectors for performance reasons.
(The method caches are hash tables themselves, and IIRC implemented pretty much the same way a basic CFDictionary is…)