There's quite a bit of inefficiency with this system at my (very large) local Fry's when it was very busy. Although with NewEgg et al, I rarely go into a Frys now - I used to go in once every week or two now maybe only go once every few months and rarely when they are busy so my experiences may not reflect current practice well. In this case, they have many registers open and it's quite far from the head of the queue to the registers at the extreme reaches of the large register farm. As a result, when a checker is assigned a register a long way from the head of the queue, they end up waiting several seconds for their next customer to arrive and begin their transaction and that waiting time is wasted labor. Those checkers who are assigned registers closer to the head of the queue keep busier -- I don't know if they rotate to compensate for this or the best checkers are put at registers near the head of the queue or there is some other way to help compensate for this phenomena.
Also, without a "line coordinator" (who usually stands on a platform so they can see over the heads of customers), there can be several "green lights" on registers and as people self dispatch to these lights, it's often unclear to the next person in line if all the registers with green lights have been "claimed" by customers ahead of them who are walking towards registers and it's also hard to notice when a register light has just changed from red to green. This results in two people arriving at the same register or the person at the head of the line standing there thinking there's no available register when there is. Fortunately, when they are busy, the always seem to have a line coordinator to keep track of all this.
However, it occurred to me immediately that technology could pretty much solve this problem and eliminate the line dispatcher. At the head of the line, there could be a button (perhaps along with some motion/proximity sensors) which the customer at the head of the line holds down. A screen would display a register number as it becomes available and, perhaps, that register's light could then flash orange or something to make it stand out. When the button is released (and perhaps when sensors note the person at the head of the line has passed beyond the button), the displayed register is considered assigned and the next customer presses the button to get their next assignment. It's a bit complicated, but the average Fry's customer (at least in this area) is probably a little smarter and able to understand such a system than the average Walmart customer.
There, actually, would probably be no reason for the lights anymore on the registers with this system since each customer is told which register to go to.
As well, the system could track how long, on the average, it takes between a transaction finishing and the next one starting (presumably longer for those far from the head of the queue) and as hints of transaction completion are evident (payment in full for example) and item count/size are analyzed (for estimating bagging time), the next customer could be dispatched to the register before the prior transaction was actually complete - sometimes this would result in double stacking but the checker could delay the dispatch if they knew there was some reason the current transaction would take longer to complete "post payment" and if double stacking occurred the checker could notice it and with a single button push put the "stacked" customer at the head of the electronic queue and they would get redispatched to the next available nearby register (perhaps only "downstream" if possible to reduce two way traffic). Redispatches would be indicated on a small screen at each register and would only be done once a target register is immediately available (i.e., no speculative dispatch so customer doesn't get pissed at being "stacked" multiple times).
Extra credit for all the germs passed from customer to customer touching the button - although with some "gating" system sort of like freeway onramp metering and sensors, the button could probably be eliminated at the expense of a bit of floor space :)
Perhaps short sub-queues closer to the registers they service could be instituted (people are directed from the single long line to three or four short subqueues which service a subset of the registers, thereby reducing the time between register assignment and the customer appearing at the register. However, this would probably require more floor space, create more confusion, and, although more efficient at getting people to the front door more quickly on the average then the current system, may seem "unfair" to those who happen to get stuck in a slower subqueue than the customer behind them.