PUT POST sendo idempotente (REST)

Não entendo como os verbos HTTP são definidos como idempotentes. Tudo o que li é GET e PUT é idempotente. O POST não é idempotente. Mas você pode criar uma API REST usando POST que não altera nada (no banco de dados, por exemplo) ou criar uma API REST para PUT que muda sempre que é chamada.

Claro, essa provavelmente é a maneira errada de fazer as coisas, mas se isso pode ser feito, por que o PUT é rotulado como idempotente (ou POST como não) quando depende da implementação? Não estou desafiando essa idéia, provavelmente estou perdendo alguma coisa e peço para esclarecer minha compreensão.

EDITAR:

Acho que uma maneira de colocar minha pergunta é: qual seria o problema se eu usasse o PUT para fazer uma chamada não idempotente e o POST para fazer isso?

questionAnswers(3)

yourAnswerToTheQuestion