Every team adds retries. Almost nobody adds idempotency keys on the other side.
So the retry that saves you during a network blip is the same one that double-charges a card six months later. Retrying isn't a client-side decision — it's a contract. Who owns that contract on your team?