Some other aspects: family files works like a cache for some settings including namespaces and its aliases and version strings. This leads to a very quick system but it is necessary to update these setting from time to time. I did it once a week in past or more until I switched to core completely. You may update family settings by yourself and might commit changes to gerrit if you want to. The version string is inside family.py. For namespaces you can use the maintenance script update_namespaces.py; it is not the best implementation due to some overlapping but good enough to handle with all namespaces again. I had a modified one to solve this problems but it is not good enough to publish it and with core branch I do not see any advantage to support it anymore.
Core uses all these information via api as you proposed. At a very early state this lead to a very slow system until cached requests where implemented. Anyway an Internet connection is almost needed using core.
Best
xqt