Hari we have one master forum (that we conveniently call "skeleton"). The static files of that forum are hard-linked (re-used, in a nutshell) across all other forums (things such as extensions' source code, Flarum core, etc...).
When an upgrade is available, we only upgrade the master forum, and then we rsync all other forums. This makes sure that we do not need to upgrade every forum individually, and it saves a lot of disk space too. The side effect is that when there are a lot of code changes, it can sometimes bring unsynchronized forums down (that's why like 70 % of problems with FreeFlarum forums can be resolved by synchronizing the out-of-sync forums).
Upgrades themselves are handled by scripts that automatically target all forums. In fact, we try to automate as much as possible to save time. Doing all this work mostly by hand would surely make my hair silver 50 years earlier or so 🙂