I often pay cash, especially in the US, where I find that in 2 out of 3 cases I get hit with small amounts of extra charges (under 10$) after I left. In every single case the CC company reverses these unjustified charges (sometimes declared as "Service charge - signature on file").
I find that I have much less hassle if these guys never get my card into their system.
Not presenting a CC in the US probably raises flags with homeland Security, but I generally get away with it if I prepay, plus $50 for incidentals. I suppose it is less transparent when you present your card, and few people argue.
Also I have one card with a low limit, that I use at Hotels and car rental companies, where they block amounts above the actual charge. That way I know when they go beyond the limit very quickly.