I have advocated government regulation on overdraft fees.
First, if the bank simply rejects the incoming transaction and doesn't pay it, you should not be charged a fee.
Second, fees should be relative to the size of the overdaft.
Example: overdraft fee would be $1 + 10% of the amount overdrawn. If you overdrew by 10cents the fee would be $1.01.
If you overdraw by $50, the fee would be $1 + $5 =$6
I would be okay too with massive overdrafts, let's say anything over $100 the base fees both higher such as $5 + 20%
But let's stop having banks fleece the poorest of society with fees upon fees