Да, браузер, так сказать, кеширует на сеанс работы заполненные формы, чтобы при обновлении страницы или использовании кнопок "назад" и "вперед" в браузере, пользователь получил ту же самую страницу. В противном случае скрипт не получит необходимых данных запроса и отдаст браузеру другую страницу, не ту которую ожидает увидеть пользователь. В переменной $_POST прошлый запрос не хранится, скрипт при запуске не имеет данных о своем прошлом запуске и состоянии переменных, если они не были специально сохранены (в БД или файл) и считаны при новом запуске.