Take a look at your LAN architecture. It's a tree with a single path from one node to another. Ethernet is a dumb protocol. The switching logic goes something like this: Step 1: Determine which port has the destination MAC, Step 2: Spit the frame out that port.
Ethernet forwarding's benefit is that it's simple. The drawback is that you are limited in what you can do. If you have two 48Gb switches that can forward a full 96Gb between all ports on the switch, and host A on switch A wants to talk to host B on switch B, the frames have to pass through--you guessed it-- a 1Gbps uplink port. To get more inter-switch capacity, you need either a fatter uplink like a 10Gb port or you can aggregate multiple 1Gb ports together. Switch-to-switch isn't interesting but highlights the uplink problem.
If you have three or more Ethernet switches, you can't link them together in a mesh. Remember, Ethernet forwarding is dumb. Putting three or more switches into a mesh creates a loop, which means the switches keep tossing frames to each other like a hot potato. What you have to do is ensure that there is one path and only one path between switches. Anyone who has run cable will tell you that is easier said than done. I don't know any IT person who hasn't mistakenly created a network loop. The spanning tree protocol addresses that issue by ensuring that when there is a loop in the network, the network devices discover the loop and disable one link to remove the loop. Problem solved. A nice side effect is that we can now have redundant links between switches--intentional loops--for fail-over and spanning tree will fix it. The downside is you're paying for uplinks that aren't being used.
But we have only eliminated loops, and we haven't changed network design much. We still have to contend with choke points in a multi-tier architecture. Whether you have an access tier, distribution tier, core tier or some other number of tiers, the basic design is a tree with one path from any node to any other node. As you go up the network, you need to add capacity to handle the aggregation of all traffic.