Every non-toy schema language has some system to break large schemas into convenient modules (files). All of them necessarily introduce a step of indirection because you need to look at the declaration not the reference to know much about them. But they all are different.
We had a problem with this on the ISO WG for publishing languages where some national bodies had made provision of RELAXNG schemas a requirement for the OOXML standard attempt by ECMA (to prevent locking out of toolchains that used different techologies to that vendor's), but no tool existed that would preserve the file structure (or base type) from the original XSDs. Without the same file structure, it was too difficult to standardize. I wrote a tool (multiple xslts) and murata completed it (with bits in python), limited to the subset needed for ooxml.
I think one of the limitations of the idea of grammar neutrality (ie freely translate the schema into the particular grammar available for each tool) is this lack of entity maintenance by some converters. (Not a good term) Possibly it is a bigger problem than the different power of the different grammars.
As to the point that parameter entities are difficult, i have mentioned before that RELAXNG in effect puts all things into parameter entities: patterns work by substitution. People dont complain RELAXNG has a taxing syntax. And it does not even give you a convenient % !
Rick