Cabbies might have the right to refuse a fare based on safety concerns, but not religious concerns. That issue is settled, as far as I can recall.
I hope somebody has the courage and the money to take this one to court.
IMHO, cabs should be able to refuse service to whomever they want, for whatever reason they want. On the other hand, I would see nothing wrong with requiring that a driver who refuses a fare that seeks to go to his labeled destination(*) go to the back of the taxi line.
(*) At Washington National Airport, there are (or at least were) DC cabs and Virginia cabs. If you wanted to go to DC but tried to board a Virginia cab, or vice versa, you would be refused but the driver should hardly be penalized for that.