$_GET, $_POST, $_COOKIE и другие суперглобальные переменные могут перезаписываться внутри документа, но это не означает, что при вызове в другом документе, значения сохраняются. Если я не посылаю POST-запрос, я так же могу изменять в нем значения и потом использовать:
$_POST['id'] = 1;
echo $_POST['id']; // 1.
То есть они всегда остаются всего лишь переменными, но POST и другие запросы, функции задают им изначальные параметры перед вызовом документа. setcookie() в том числе. Чтобы корректно изменять значение, которое бы отображалось так же в других документах, нужно снова вызвать setcookie(), который перезапишет значение.