По-моему, не то немного рассказываете. Идемпотентность не требует, чтобы метод каждый раз возвращал одно и то же. Идемпотентность смотрит только на состояние сервера, например, количество записей в БД. Если состояние сервера не меняется в зависимости от того, отправили мы 1 запрос или 100, то запрос идемпотентный. Так что PUT и DELETE это идемпотентные методы (если только на стороне сервера не поменять существенно их логику), как и все безопасные методы (read-only). Определение из специкифации HTTP: _A request method is considered "idempotent" if the intended effect on the server of multiple identical requests with that method is the same as the effect for a single such request. Of the request methods defined by this specification, PUT, DELETE, and safe request methods are idempotent._