E' un comportamento corretto perche' la cache e' pubblica e da qualunque finestra si potrebbero rilanciare i dati precedenti.

prova a mettere nella pagina:

header('Cache-Control: Private');

Dovrebbe passare i dati della cache solo alla finestra che ha lanciato lo script...