That is if you are charging the fees in the same coin and not Bitcoin, if you are trading in a pair other than Bitcoin, it could make sense, when you buy 100 Xcoin, you should get 100 Xcoin, fee should be deducted from the Bitcoin amount that you have and you should see how much it is.
But that's how binance works. When buying, the fee is deducted in the coin you are buying. While in selling, the fee is deducted to coin you are receiving wether btc & eth (or maybe bnb and usdt). This is as per experience trading altcoins with btc & eth in binance.
What OP has experienced, when you are trying to sell all of your coins for a price, if there is not enough buy order for that amount and price, your order will return with some change.
That change is because of this trading rule
https://support.binance.com/hc/en-us/articles/115000594711-Trading-Rule (credits to odin81982) and not because there is not enough buy order. So to counter those dusts, I've made that suggestion. I know it will not directly help those who are selling their coins one-time but somehow will help those traders.
And for treating this issue as cheating, I can't agree with it.