I cannot believe I am arguing about something that is dictionary defined.
English is a weird language. Yeah, there are the dictionary definitions, and that's what you learn when you learn it as a second language. Dictionary definitions are called "denotations". Most languages, it stops there. The word is defined, and the only thing beyond the "denotation" is emphasis and tone.
In English, we have something called "connotation". This is what a person feels when they hear the word. In English, this is just as important as dictionary definitions. The problem with it is, they tend to change with the times.
Way back when everyone bought everything at your local small store, where everyone knew everyone, the word customer simply meant someone who was purchasing goods for money. Fast forward a bit. Now you have chains, and impersonal managers, and clerks who do not know the people they are selling stuff to. "Customer" has a new connotation, and it's linked to this new type of selling. Way back when, the vendors knew their customers. Now, all the vendors care about is getting the dollar out of the "customer" 's pocket. Hence, the new connotation is that "customer" refers to someone who pays for a good from someone who only cares about getting paid.
This is why the new words came up, like "agent" and "client", "server" and "diner", "star" and "fan". They represent an attempt at a more personal relationship between the vendor and the consumer than "Cashier" and "customer". Though, those are starting to become stale and cash-based as well. My guess, within a few years, we will see yet a new word used by business to make their customers feel like more than "just a customer".