In fact, yes. If a retailer signs a contract with the processor to accept either Visa or MasterCard, the contract itself is very specific. They cannot inform the consumer of the fee they're paying to accept a card. They cannot encourage the consumer to change the card, in fact, to sway them to another product.
The only thing a merchant can do—and it was mentioned earlier on and it's fairly new, as Catherine mentioned—is they can provide a discount on cash. Once they've signed a contract, they have to accept all the cards that are presented under that brand.