I think you'd basically have to come up with a generic design for partitioning catalog tables into local / non-local storage, without needing explicit code for each catalog. That could also be used to store the default catalog contents separately from user defined ones (e.g. pg_proc is pretty large).
There is still a risk of bloating in local storage, but, mainly, you probably have to modify a lot of lines because the system cache doesn't support partitioning.