Проблема в том, что для удаления куки надо в точности воспроизвести все, кроме времени жизни и содержимого, параметры, которые были заданы при установке куки. Т.е. домен, дополнительные флаги - всё это при установке и удалении куки должно быть полностью идентичным.
Значение в массиве $_COOKIE поменяется только после перезагрузки страницы - когда бразуер передаст серверу новый блок кук. Вызов setcookie на содержимое $_COOKIE не влияет.