For shielded addresses, using one address per payment will cause significant performance issues (as every block in the chain gets scanned with every address in the wallet). There is no privacy problem with reusing shielded addresses, as they are not ever visible in the block chain. Two customers could figure out they are paying the same person by comparing addresses, but that’s about it.
For transparent addresses, using one address per payment confers no real privacy benefit, because the transaction graph is still visible, and various clustering algorithms have been developed (for Bitcoin, which can be used on Zcash) for identifying transparent addresses in the same wallet. There is a minor security benefit of using one address per payment in that the public key for spending is not revealed in the address, so you get protection against an adversary that can break the public-key cryptography (so either a quantum adversary, or someone who knows a flaw in secp256k1).