That image is www.gravatar.com/avatar/6d8ebb117e8d83d74ea95fbdd0f87e13?s=32&d=identicon&r=PG and the servers at gravatar.com really tell your browser to only cache it for 5 minutes. Maybe, some day in the past, they told your browser to cache forever, but if so then that has been fixed by Gravatar long ago.
EDIT -- It seems Gravatar is the cause of the problem after all, as they seem to be setting the
Last-Modified date to the date one first subscribed (or
Wed, 11 Jan 1984 08:00:00 GMT when not subscribed), rather than to the date one changed the avatar. For the image above, one gets
Last-Modified: Sat, 27 Sep 2008 17:32:56 GMT though Jon changed it more than a year later, somewhere after November 2nd 2009†.
When requesting a resource, most (if not all) browsers will add a conditional
If-Modified-Since header for things they already cached, and indeed then Gravatar currently (wrongly) returns
HTTP/1.1 304 Not Modified, and does not return any image data. This is not according to the official description from late 2005:
I’ve implemented an If-Modified-Since handler that will return 304 Not Modified if the requested avatar has not been changed since the last time your browser downloaded it
(Thanks to Kip for finding the issue with
† Instead of changing the avatar, Jon could also temporarily have used a different email address to get a different avatar at Stack Overflow. In a comment he confirmed that such was not the case; he indeed changed the avatar itself.