Then, credit card companies take some of their profits and give them back to customers in the form of reward programs.
So we all end up paying more for nothing, but the incentives make it a difficult collective action problem. I don't know why retailers don't take advantage of their right to pass fees through to customers. That would solve the problem. I guess it would make some stupid people angry. And maybe there is some other pressure the credit card companies are using.