I think that in 2008 the norm is for more expensive restaurants to accept credit cards. And most customers expect this. If a pricey restaurant does not, then they have a duty to make it known to their customers before they place their order. This can be done by signage as one enters, a notice on the menu, and even by the server taking the order. They should be just as concerned about the possibility of embarassing a cash-less customer as they are about receiving payment for the meal.
In the situation described by the OP, I don't really have enough info to know if the policy was clear (or should have been clear to the average customer) ahead of time or not. Regardless, it was probably not right to take out his frustration by not tipping the server unless he also received bad service. I will admit that how much I tip is based on many factors, not just the price I paid, but there are intangibles (quality, presentation, ambience, etc.) which affect the tip (usually to increase the amount of the tip above my baseline). I am sure I have stiffed a server at some time in my life for extraordinarily bad service, but I can't remember it. Generally speaking I will decrease the tip for ultra slow, surley, or disrespectful service.
By the way, since I am always out to maximize FF miles, I rarely go to a cash only restaurant. And I always make sure I know up front if they take plastic. If no signage is out, I always ask before being seated. I carry more than one card in case there is a problem, but carrying sufficient cash to pay for a night out at a fine restaurant is impractical for me (at best), and could be dangerous in some areas. EXCEPTION: When I am in Japan, a highly cash oriented country, I carry a lot of cash to the point that my wallet is bulging and uncomfortable, and I still worry, not that someone will rob me, but that I will lose my wallet, or possibly still not have enough cash to cover a purchase. I never have that worry when I can carry and use credit cards.