I think most people miss the point of tipping. Tipping is based off of service. Even a restaurant server, you aren't tipping based on the food, you are tipping based on the service. The server could do everything right, go above and beyond the call of duty, but if the cook keeps messing up, is it the server's fault? No, he/she did everything they could to give you great service.
The problem is not with who should receive tips, because in my humble, but accurate opinion, it is your discretion to tip whoever you want, in whatever profession you want. The problem is the people who expect tips. Tips are a bonus to anyone working.
Maybe people should try tipping on what they feel and what their heart says instead of service. Who knows, maybe your waitress just found out earlier today that a family member passed away, and unfortunately, their boss is the heartless one and made them work or get fired as it wasn't an immediate family member. So she may not seem into her job that day, maybe a tip of 50%, although not much, would make her realize there are still people who care in this world.
Whatever you sow, so shall you reap.