i know that one reason for /root not being in /home is that usually /home is mounted on a different disk and if it were to fail, we still want root to be accessible. What are some of the other reasons for this structure?
You want to build/diagnose/repair a system using that same system, so it makes sense to keep the next upper layer (multi-user features) independent from the lower layers. Many systems to this day equate recovery with single-user: not a special mode, but a merely a lack of some features built on top of it. And if
/homeis part of a layer on top of single-user systems, it cannot contain single-user essentials.
You should keep personal data separated from system data. Enforcing this separation even when not also expressed in distributing across different mounts makes sense to simplify safe defaults for common operations: Only multi-user directories require explicit exclusion when doing a system backup - the root users directory being considered system, not personal data here.
These two may not be strictly equal to the
/home is a nfs use case, but obviously still strongly related. My main answer is and remains: being able to handle /home mounted from a different device is a good reason and when designing low-level software, one good reason is already enough.
Personally - without having read into *NIX (UNIX/Linux) design for a long time, I'd say you've likely answered you own question (/most likely implied the main reason), in that it boils down to recoverability/the bare-bones running system (- the *NIX equivalent of Windows 'Safe Mode'); what is the bare-minimum you need to be able to run the O/S (?) - should you need to diagnose an issue and work your way up step-by-step, i.e. mount one filesystem and/or start one service one at a time (- i.e. with the fewest dependencies/mandatory facets necessary to allow the system to spin-up successfully/be up & running so that an administrator is more likely to be able to initiate the diagnostic process).