Nested hierarchies cause a performance overhead when they include moving objects.
Every time a GameObject moves, altering its transform, we need to let every game system that might care about this know. Rendering, physics, and every parent and child of the GameObject needs to be informed of this movement in order to match. As the scope of a game increases, and the number of game objects skyrockets, just the overhead of sending out all these messages can become a performance problem.
However, nested hierarchies are useful in organising a scene and keeping logical groups of gameobjects separate.
What options exist to save performance whilst keeping the hierarchy? Is there any pre-existing solution to flatten a hierarchy when building only?