I recall some discussion that the walk-through-every-registered-hook-provider to resolve the handler is a pretty slowish/crufty way to handle that part of the request processing. Especially if everyone sets up the handler up-front in the various request preprocessing phases
The problem with leaving it to be 'snatched' in the handler is that nobody knows this will happen when the evaluate a 'preprocessed' req_rec. And, it's slow.
++1 in concept. This creates a performance problem that is unlikely to show up in profilers because the extra cycles/i-cache misses are spread among all the handlers.
Not sure how to implement it, but it shouldn't be too hard.
Greg