PONER POST siendo idempotente (REST)

No entiendo cómo se definen los verbos HTTP como idempotentes. Todo lo que he leído es GET y PUT es idempotente. POST no es idempotente. Pero podría crear una API REST usando POST que no cambie nada (en la base de datos, por ejemplo), o crear una API REST para PUT que cambie cada vez que se llame.

Claro, esa es probablemente la forma incorrecta de hacer las cosas, pero si se puede hacer, ¿por qué se etiqueta PUT como idempotente (o POST como no) cuando depende de la implementación? No estoy desafiando esta idea, probablemente me estoy perdiendo algo y pido aclarar mi comprensión.

EDITAR:

Supongo que una forma de formular mi pregunta es: ¿Cuál sería el problema si usara PUT para hacer una llamada no idempotente y POST para hacerlo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta