It occurs to me that NSSearchPathForDirectoriesInDomains() has a
mask of domains as the second argument.
That means that code looking for resources is expected to know
which domain it should be finding them in ... rather than just
looking in all domains.
So there is an inbuilt assumption supported by the API that certain
packages are installed in certain domains.
We could go through all code and make sure that whenever
NSSearchPathForDirectoriesInDomains() is used, its second argument
is the mask of all domains ... so that it should work wherever
packages are installed.
The downsides of that are ...
1. we don't control all the code using that function
2. it may not be a good idea to load some resources from some
domains (eg security)
However, we could just say
1. it's the programmers fault if they depend on a resource in a
particular location, and well written code should cope
2. security issues should be addressed independently anyway
But if we do that I think we need to document it very clearly.