If we show the fonts at a different file system location, then the caches would be invalid. For instance:
$ strings /var/cache/fontconfig/9b89f8e3dae116d678bbf48e5f21f69b-le64.cache-6 | grep usr
/usr/share/fonts/opentype/noto
/usr/share/fonts/opentype/noto/NotoSansCJK-Black.ttc
/usr/share/fonts/opentype/noto/NotoSansCJK-Black.ttc
...
The cache files are memory mapped and accessed directly as data structures, which is why having the full path names to the fonts probably made sense.
The bug report I mentioned in my first post was about adding support for making the caches relocatable, but that work hasn’t been merged yet, and if we can avoid the issue all together by presenting the system fonts under the same paths we avoid the problem all together.
Is this the sort of thing that your layouts work could help with, or would it be better off trying to get empty directories added to the core snap as mount points?