There is no incentive, you are correct that propagation occurs only because "the default client is generous". Greedy nodes could choose to keep transactions to themselves.
If that began occurring regularly, it could be defeated by having the client connect to more peers after a bit and asking them if they've seen the transaction (I don't think this is implemented, but would be a simple extension "do you have transaction 0xabcd in your memory pool"?). If they haven't, some vertex cut of peers separating you from them is withholding. You would now choose new peers.
In an utterly greedy world where
everyone withholds, the big mining pool operators would publish an address where you could submit your transactions. You would then have to submit your TX to each of them.
As for your second question, the 50btc is MUCH greater. You can see recent blocks at
http://blockexplorer.com/The last few blocks have total fees under 0.001 BTC.