I noticed that wallet.cpp and coincontroldialog.cpp try to not produce dust output.
The original intention of "dust" is to not create uneconomical output. However, using minTxRelayFee as the basis for minimum output value we don't ensure uneconomical output, we only ensure that the transaction is not rejected by our own node policy.
A change of default minTxRelayFee as done in #6793 can suddenly mean that a transaction created by a wallet will not be accepted by other nodes because you are still using the old minTxRelayFee when creating your transactions.
Using estimatedFee instead of minTxRelayFee in wallet code would not only make sure that the creation of an output is economically profitable, but also ensure that a sudden change of minTxRelayFee by other nodes don't impact the confirmation time of transaction created by the wallet. It has the indirect advantage to make the UTXO smaller.
I will probably try to implement that, I just want your thoughts about the idea first.