Back in the day (when we had to go to school uphill both ways), I met a banker who told me, "whatever your bank is charging you for a bounced check, it isn't nearly enough". Then he described how the system worked: the actual physical check had to be sent back from your bank, to the Federal Reserve branch of the receiving bank, then to your branch of the Federal Reserve bank, and then to your bank. Not electronically: I'm describing the movement of the actual physical paper check. So, there was a real cost to everyone for a bounced check and of course the person who wrote the bad check should pay. That makes sense.
Of course, this makes no sense in a world of electronic transfers via ACH. The banks that are still charging $35 for a bounced transfer are engaging in something barely more legal than theft.