We got to a point where schema is essential for all internal operations
-- and I wouldn't back off --; for this purposes, we rather developed
tools to munch and digest the worst schema sources ever. I rather prefer
having control on what is getting in, and especially on what's pushed
out. Note that in order to push out search results you don't need to
know matching rules for attributes; but you will to accept filters. So a
best practice consists in knowing the schema for all items, and generate
dummy schema for unknown items with something like "octetStringMatch" as
equality rule, so that it smoothly passes frontend filter validation.
Any overlay would be useless at this point, since overlays cannot take
control __before__ filter validation, or when determining if an attribute
was requested. I can share some of those tools if you want to try them
(too busy to release them "officially", sorry).