I'm not an expert in Objective C but I believe that all dispatch is done by a library call that accepts the receiver, the message name, and the arguments. This means that there isn't any place to store per-call-site data, such as the kind of caches used in this paper.