I have seen lately in different realms of real life extensive use of sub-organizations.
For example: When they built the house where our new apartment is the jobs where given in commission and sub-commission. And this for about 4 levels. But we are not talking about 4 different people involved here - no - we are talking about 4 different companies and a lot more people. I could see that information flow often neither reached level 2. I further noticed that there is a strong inhibition on the "bottom" level to contact the above level in problem case. People do quick and dirty fixes before contacting the higher level to solve a problem where it occurs or where it should be solved. But things then easily escalate and then you get a mess easily where everybody's most important interest is pushing the responsibility to somebody else.
The above example can be seen with similar characteristics in many realms and is not limited to "manual" work and communication. Either when thinking of the IT branch or more in detail looking at software concepts I can see such characteristics.
Often each level/layers when you go from bottom (actual implementation layer) to upper levels (towards management and top management) there is always a little bit of abstraction introduced which also leads to information loss and increases overhead.
So my message today: Remember to focus on the actual concrete problem to solve and introduce additional layers and abstraction only where really helpful!