So: if you have a better suggestion for fixing the problem of new users wasting lots of time gathering tiny drips and drabs of bitcoins, and then getting upset when they can't spend them (because it costs more in fees that they are worth), I'm open to suggestions.
Ideally, people would pay for the costs they impose. At the moment, the 2 costs are UTXO set size and storage in the blockchain.
These aren't actually miner costs. With a maximum block size, they would inherently charge per MB, but that isn't because MBs cost them. It is an artificial market to encourage mining. The actual cost of mining large blocks falls on the network as a whole (miners and verification nodes alike).
For people who are willing to trust that all blocks more than X deep are secure, then all they need to store on their hard drive is the UTXO set.
I would suggest that as long as a transaction has a large enough transaction fee per kb and has at least as many inputs as it has outputs, it should be relayed. This transaction will either shrink the UTXO set or keep it the same.
Coinbase transactions that have more than 1 output could be penalized, if it is critical to keep the UTXO set low. Maybe they are only relayed/count if they meet 0.9 times the standard threshold.