I think that there are some advantages of resuing an address:
- no need to advertise new address each time to receive transfer,
This is a disadvantage, not an advantage. By "advertising" a new address each time to receive a transfer, I can know exactly who sent me a payment, and why just by looking at the address it was sent to. If I reuse an address, I can't distinguish one payment from another.
- less risk of mistake on sender side,
I disagree. An address has a checksum built into it. So, if a sender makes a mistake typing it, then the mistake will be immediately identified by any reasonable wallet software and they will be unable to send to the wrong address. Reusing an address encourages a sender to go retrieve the address from a list of addresses somewhere that they are maintaining, significantly increasing the risk that they accidentally retreive the wrong address. If they retrieve the wrong address from their list, it will be a valid address and the wallet software won't stop them from sending to it.
- less steep learning curve (e.g. for IBAN users),
More steep learning curve for anyone that has ever worked with an invoice number.
It's just as difficult to protect a single key as it is to protect a thousand keys. Furthermore, if you use a new address each time, then there it doesn't matter if a key is somehow accidentally leaked once the funds that were received at that address have been spent. And, to top it all off, if you fail to protect a single key of a reused address, you'll lose ALL of your funds, if you fail to protect a single key of a non-reused address, you'll only lose that single payment, and still retain control of all your other funds.
Advertisement an address is simpler vs maintenance of a system that advertises many unique ones.
That depends a bit on your specific use case. For most users, it isn't any simpler or more complitcated. You just run your wallet software, and teel your sender what address to sent to.
Also, a reused ("catch-all") address gives an opportunity to mititagate some of phishing attacks because other sources (trusted ones, e.g. friends, self-made or external directory) could validate an address.
Actually, it increases the risk of a phishing attack. If I re-use an address, then a phishing attack can create an address that looks similar to my "usual address". Since my friends will be conditioned to expect that particular address, they are MUCH more likely not to notice the small difference. On the other hand, if I use a new address every time, my friends and I are far more likely to put verification processes in place.
Moreover, storing and keeping many addresses is more complex for a sender (imagine choosing the best/valid address among hundreds of them pertaining to a recipient).
Why would a sender need to store or keep addresses? They are useless once they've been used. There is nothing for them to choose". I'll send them a new one for the next payment.
Lastly, protection is simpler for one private key than many of them (even if they are generated in a deterministic way like BIP-32 or BIP-39).
I disagree. The difficulty of protecting a single key is exactly the same as the difficulty of protecting multiple keys.