Even more, I'd say we should never aggregate classloaders when we know where something is to be looked up from. The problem is that often we don't know.

Still, take for example when we need to create user entity instances by name: that is something that could be a query hotspot, and we pretty much know that these entity instances are not in the ORM jar, nor in the Search jar.

Not going to over-engineer this now, but you nailed an interesting idea we could evolve further. For example the ClassLoader service could mandate an EnumSet parameter, where we have enums defining the different "spaces" to looks for.