It depends on the network I guess, i've done tons with all different types of spanning tree, I support the UKs biggest carrier ethernet network, which is layer 2 and runs the entire length of the country, it runs RSTP, QinQ and goes up to 10Gbps.. The failover is a lot quicker as it doesn't need to wait for routing convergence, as opposed to an MPLS network where BGP carries everything on the edge (1+ minute convergence..) its great for high bandwidth customers which are hundreds of miles apart, but its only really Vlans and trunking so the only way we can do it is with spanning tree, if the customer needs routing and high bandwidth links they normally pay for a big leased line and go via MPLS..
If I was putting anything in on a campus network of some kind, i'd avoid spanning-tree like the plague, Cisco don't recommend it now that full layer 3 switching has come right down in price (3560s etc) you're far better off running EIGRP/OSPF in the core layer with 6500s leading into 4500s/3560s in the distribution layer running SVIs, its far neater, easier to configure and troubleshoot... However much spanning-tree has saved my bacon in the past when layer3 switches weren't available, when it goes wrong - it goes wrong big time and it doesn't recover, if you think nailing a routing loop is bad, try nailing a layer 2 loop when every single interface on every single switch in the network is sending traffic in circles, remember with layer 3 you usually have many tools available which help nail a loop <trace etc> with layer 2 theres hardly anything which will even work lol..
That said - spanning tree can be quicker than any routing protocol if its setup correctly but thats half the battle... EIGRP on a medium sized LAN is plenty quick enough.
And remember, if your using spanning tree, you're most likley running PVST, which means you have layer 3 gateways somewhere which will need Layer3 routing anyway, makes sense to have everything layer 3 where you can...