No problem. I will now bring down the wrath of the 800 pound spidey gorilla.
1st question would be why would you need to trunk? There have been very few instances where I had to because of security and in highly redundant data center cores. But out to the distribution and access layers it is a big no-no.
So what happens when you enable a trunk? A single link is in multiple vlans and the switch tags the frames source vlan whether it is ISL or 802.1q. No big deal right?
Cons:
1) spanning-tree. Imagine a network of 30 switches all trunked together forming nice little triangles everywhere for redundancy. spanning-tree design will get very tricky just for one vlan. Now throw in 50 vlans. One link starts to flap or you have some kind of unidirectional communication going on. Instead of just a single vlan being affected now ALL 50 vlans are broadcasting out the wazoo and each and every switch is running 50 instances of spanning tree. Network is baked (I've seen it a dozen times on a dozen very large networks). done. never converge and would be a complete nightmare to troubleshoot.
2) Broadcasts. they're flooded down trunk links, depending on the protocol this could get very high and scales linearly with the number of vlans. meaning one little machine starts a brodcast storm on one VLAN and now instead of just his switch of vlan being affected all links in the network are flooded as well. again hard to troubleshoot.
3) leads to a bunch of flat networks.
4) can lead to mismatched native vlans in 802.1q trunks
Trunking came about because of the need to keep traffic local instead of routing it. router speed used to be pretty slow and the term "route when you can bridge when you must" came about. With the advent of true wire-speed routing there was no longer the need to worry about passing through a router and the associated performance hit.
So instead of trunking everywhere, flooding broadcasts everwhere, having god awful complicated spanning-trees everywhere network design shifted to a more hierarchial method using layer3 routing. now the distribution and even core layers of a network are connected by single vlan, routed links with a /30 mask. routing protocols handle the redundancy, spanning-tree can almost be eliminated and broadcasts are controlled.
So to summarize, route everywhere. Trunk only if you absolutely must (and if you do you might want to re-think the design) and prune them if you do. Use the intelligence in routing protocols to handle traffic and failover. Routers also generally contain a network problem just to a specific VLAN, making it far more easy to troubleshoot.
So after all my babbling I can think of no pros for trunking. only cons. The biggest part is you can trunk everywhere and all will work fine. It is when you have a problem that you'll wish you didn't.