Thanks, Peter, for your insight. It turned out that the caching problem I was seeing was limited to a unique case in my page design. I'm updating a set of img elements with ajax after initial page load for a kiosk SPA. When the img elements are updated by ajax, and the supporting image files are not actually re-requested, the browser has no way of knowing that there is a new updated image available for download. So it looks like I'll have to version the image file URLs after all.
Here is the method I created to build a version number from the Attachment's AttachmentLastModified converted to ticks, in case someone run's into the same issue. It can be used to populate a version number as a query string parameter on the attachment URL in your transformation.
private string GetAttachmentLastModifiedDateAsTicks(string attachmentGuid)
return AttachmentInfoProvider.GetAttachmentInfo(attachmentGuid, SiteProvider.SiteContext.CurrentSiteName).AttachmentLastModified.Ticks.ToString();