Übers Cachen sollte der UserAgent entscheiden. Und das kann er auch, wenn das Cachen nach bewährten sowie standardisierten Verfahren erfolgt wie z.B. über einen Last-Modified HTTP Header -- Da kann der Anwender im Zweifelsfall den Cache selbst löschen oder ein Force Reload machen.
Wenn aber z.B. der aktuelle Monat ins Template gerendert wird und aufgrund einer Fehlkonfiguration mit expires > 2 Monaten serverseitig gecached wird, hat der Anwender keine Chance auf eine aktuelle Seite.
Faszinierend, wie Du die Thematik durchdrungen hast!