This should definitely not be allowable under our current system. If race is protected from these sorts of things, so should sexual orientation.
The only time I think a person should be free to deny service (under the current system) is where that service requires participation in something they disagree with on religious grounds. For instance, officiating a gay marriage. Much as we have allowed pacifists to avoid combat in the past.
I say "current system" as I don't think the ideal is to make these things illegal, the ideal is that they are rare enough that nobody cares. For the time-being, unfortunately, it appears they need to be illegal.