> It's not actually illegal in the US to pass the processing fee to the customer, it's just against the contract you have to sign to get a merchant account.
Depends on the state. It's no longer illegal federally, but many states, including the four largest states[0], still prohibit it. And if they pass the fees on, they have to pass it on for all credit cards, due to the specifics of a court settlement a few years back.
In addition, any merchant that accepts American Express is also prohibited from passing on fees for any credit card, because Amex prohibits passing on fees, and you can't pass fees for Visa/Mastercard and not Amex (see above).
So, very few merchants actually do.
[0] California, Colorado, Connecticut, Florida, Kansas, Maine, Massachusetts, New York, Oklahoma and Texas