Yes, all the time. You will be surprised by the increase in quality service you receive by being polite and expressing to the person serving you how much you appreciate their work and effort. (I usually end up not having to pay for my drinks and/or get free substitutions on my orders as a result.)
I address anybody I don't know except small children as sir and/or ma'am, so yes.
This.
^^^^
I think you've missed the point. Here, calling someone sir or ma'am might be seen as patronizing.
There are better ways to show you appreciate someone's hard work and effort. You could say something like "thanks a bunch, I really appreciate it. Have a good day" accompanied by a warm smile.
A thousand times this. Politeness isn't shown by giving someone a title. Politeness is shown by looking someone in the eye and displaying a positive attitude. They're skills I've certainly learned that people around DC really need education about