A solution proposed by Warren Togami:
Now I propose adding an additional expectation of fee for each output where the value is “small”. For example a shitcoin in 2011 added 1,000 penalty bytes to the fee expected by MempoolAccept for each output that was too small. I always thought that was a good idea that would benefit Bitcoin because it would make any UTXO set expansion extra costly. I first proposed this for Bitcoin ~2014 because I was very angry about SatoshiDice spam. I still think charging for too-small outputs would have been better than the dust limit.