This refactoring makes the lookup caching easier to reason about. This has no observable effect although it does slightly change what is being cached.
Before this patch a negative lookup in the LanguageCategory would be cached, but a positive wouldn't.
After this patch LanguageCategory lookups aren't cached, period.