> The way packages guard against this problem is simply by making sure
> that \usepackage or \RequirePackage will execute the external code
> only once.


> [...] the mechanism for this is fairly simple: the loader looks in
>    \csname ver@<filename>\endcsname
> and if that is \relax the it loads the file.

Thanks for confirmation.

> Maybe we should have a declaration
> \ThisCodeReplacesPackage{foo}{date}
> for the above but we don't (yet)

memoir.cls uses `\EmulatedPackage', as Will pointed out – maybe it
makes sense to stick with this name?

> I don't really see the need to clone fontspec and fontspec-xetex
> especially given that fontspec does so little and you aren't really
> changing it.

Well, it's the solution with the least code change...