I think a tip should be given for extraordinary service, not just for doing the job.  Punching my order into the computer, taking my money, and handing me what I ordered is not extraordinary.  Professional offices (Dr., lawyer, Pharmacy) should not receive tips.  To fix the system requires changing the system; educating employees and consumers.  It would be complicated and long.