Layer 3 maintatins hierarchy based on IP address. Layer 2 doesn't because the MAC address of two cards purchased need not be consecutive.
So with layer 3 addressing we can form tree like topology so that there is an hierarchy.Having hierarchy drastically reduces the routing table size, which is not possible with layer 2 addressing.It is easier to implement and maintain hierarchical routing. That is why organization do that. But it is technically possible to implement and use networking topologies in layer to itself.
About efficieny, layer 2 routing is not necessarily more efficient than layer 3 routing. Protocols at any layers can be made to do efficient routing with careful design.