And the answer was: Caching was working just fine, but the client I was using, even when asked to force-reload images was apparently still sending If-Modified-Since. So the correct logic was being triggered, and the logs verified that, but no content was actually being retrieved from the servers to populate the cache.
Combined with a logical error in the original iRule that I had already fixed (which set me off on this path in the first place), I have been chasing a ghost.
Complete PEBCAK. I am going away now to try to find a copy of "HTTP for Dummies".