They don't really offset the fees because the fees are higher! At least in Canada, the high points cards actually cost more for merchants to accept. Merchants are charged different fees per card but by the rules of the credit card companies are not allowed to refuse the high cost, high point cards.
Yes, really the optimal plan is to use an Amex that has higher rewards due to its higher merchant fees. Yes, the fees get passed on to the customers, but they get passed on to ALL the customers, so the people using Visa or MasterCard or cash are subsidizing my Amex fees. Not particularly nice, but optimal!
The Competition Bureau (federal government agency in Canada) is currently battling the credit card companies on this point: http://www.cbc.ca/news/story/2010/12/15/con-credit-card-fees...