Safari previously respected Cache-Control when the 2-finger swipe-between-pages gesture was enabled in macOS's Trackpad settings, but did not respect Cache-Control when clicking the Back/Forward buttons or using Cmd + [ and Cmd + ] keyboard shortcuts.
A common fix was to disable the gesture and then use BetterTouchTool to map the same 2-finger swipe to the keyboard shortcuts. There are many fairly recent forum posts suggesting this. Based on the timing of posts, this must have changed in the past couple years as this fix no longer works. Cache-Control is always respected.
Some users have abandoned Safari because of this "problem". It seems some users don't mind it, but those who do (like me) find the behaviour intolerable.
Unfortunately, browser extensions apparently cannot modify the Cache-Control header:
https://developer.chrome.com/docs/extensions/reference/webRequest/#life-cycle-of-requests
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/onBeforeSendHeaders
I not sure how to find the relevant documentation for Safari's extension APIs, but I suppose it's the same.
So, my idea to make an extension that handles this is not possible.
Edit: I might not be understanding the extension API stuff correctly. I think you'd want to modify the Response header, right? But what I'm seeing in the API reference is that you can't modify the Request header... May be a bit out of my element here!