Is this really being called frequently enough to warrant caching? I would prefer we throttle the consumers of this function (e.g., via #610) for better performance improvements. I think this implementation shouldn't bother trying to cache the selection until it can be proven to have an impact on performance.