Всё логично.
Сервер сформировал страницу, отдал её клиенту.
С этого момента сервер более не властен над страницей.
Браузер получил страницу и отобразил её.
С этого момента браузер не знает об изменениях на сервере.
Единственный способ получить новые данные (или узнать, что они вообще изменились) - запрос на сервер.
Не согласен. Include() тупо выполняет PHP код, который находится в файле, который там указать. Это зависит от кеша юзера. У меня была такая же трабла в опере. Но там на самом деле вся страница хранится в кеше, а не только инклуженая.