The requirement for the first case isn’t idempotence. It might be that the request is idempotent in that it doesn’t affect the resource, but the resource might still change over time! Good APIs might make guarantees about some URIs always referring to static resources, but certainly not all resources should be so.
It’s a hard problem. See also SAML: in principle every interesting fact is an assertion. Other more modern things in that space exist too.