Why do transactions propagate? It seems like miners would have an incentive not to propagate transactions that came their way. Not propagating would both save them a bit of network use and make it more likely that they would claim the fees from those transactions. Am I missing something, or is it just that a sufficient number of miners are charitable?
It's true, there is a bit of a Tragedy of the Commons going on here. All miners want transaction to be propagated to them so they can include them and get the fees, but why would they expend their own bandwidth to help others hear about those transactions?

Fortunately, though, miners are not the only ones on the network. There are currently almost 6,000 reachable full nodes on the network, and a small subset of these are actually miners. So, even if all the miners stopped propagating transactions (they still have to propagate their solved blocks to get paid), information would still spread fairly quickly throughout the network.