I'm trying to understand why this resource is being cached even though there is no cache-control
header returned in the response.
How is it possible that this resource is being cached?
This is addressed in Section 4.2.2 of RFC 9111:
Since origin servers do not always provide explicit expiration times, a cache MAY assign a heuristic expiration time when an explicit time is not specified, employing algorithms that use other field values (such as the
Last-Modified
time) to estimate a plausible expiration time.
And, indeed, browsers do this.