Personally I think they should, with objective, explicit exceptions common to all merchants, something like:
1) rudeness or disrupting
2) age and health
3) intoxication and indecency
4) whatever else society can agree on (good luck!)
Both service providers and customers keep ending up in court because the "right to refuse service to anyone" too often becomes "discriminating against a protected class", and the lines get blurrier every day. Much easier to just say "serve everyone or don't go into the business of serving people" and be done with it.
In fact, the obligation to serve customers by law would serve as both a consumer and merchant protection for cases exactly like this -- the fact that, until sodomy laws were ruled unconstitutional in the US just a couple decades ago, many banks refused to lend to otherwise-credit worthy gay couples or unwed heterosexual couples for mortgages (afraid of being accused of supporting illegal activities), which would be more of a moot point in this sense because the onus is no longer on the bank to scrutinize how someone lives their personal life so long as they meet objective measures of credit worthiness.
In fact, the obligation to serve customers by law would serve as both a consumer and merchant protection for cases exactly like this -- the fact that, until sodomy laws were ruled unconstitutional in the US just a couple decades ago, many banks refused to lend to otherwise-credit worthy gay couples or unwed heterosexual couples for mortgages (afraid of being accused of supporting illegal activities), which would be more of a moot point in this sense because the onus is no longer on the bank to scrutinize how someone lives their personal life so long as they meet objective measures of credit worthiness.