I am sorry to say, but it not user friendly at all.
Keeping track of so many addresses can be a real pain especially if I am a successful shop with 10 - 100 transaction a day.
It seems that bitcoin is not suitable for large scale # of transactions.
You do realize you can keep track of the addresses programatically, right? One would just need to code a service that abstracts this once.