What exactly do you mean by waste? Generating some addresses only took few miliseconds and you only use extra few KB to store it on RAM/storage.
My feeling is that OP (wrongly) thinks that there are limited number of addresses. They will all be used if people generate a new address for every transaction and there won't be any new address to be generated.