Executando verificação de segurança...
2

Respondendo a pergunta agora, você não avalia do ponto de vista do sistema, mas do usuário.

Se aquele recurso caro é sensível e não pode, sob hipótese alguma, ter duplicação do ponto de vista do usuário (por exemplo, pagar mais de uma vez a mesma compra): idempotência deve ser utilizada.

Se aquele recurso caro não pode ser abusado com requisições em excesso: nonce e só adotaria TAMBÉM idempotência quando não pudesse haver duplicidade do ponto de vista do usuário. Mas além do nonce tem outras estratégias melhores para uma API como Rate-Limit, CORS.

Mas não confunda, nonce não "ajuda a evitar ataques de repetição" (quer dizer, ajuda) mas não é o propósito dele.