Главное что delete удалит лишние св-ва из обьектов, а лучше тупо перезаписать весь обьект, и хранить всё в нём а не в глобальной области видимости.
Да и кто сказал что нельзя удалить переменную из глобальной области ?
Все глобальные обьекты, это лишь св-ва обьекта window. Значит достаточно выпилить св-во c именем переменной из обьекта window.
Запускается теперь в фрейме, для чистоты эксперимента.
<script>
// создадим переменную
hello=100;
// проверим доступ к переменной, должно быть всё нормуль.
alert (hello);
// удаляем переменную
delete window["hello"];
// эта строка выдаст ошибку, потому что переменную hello мы удалили
alert (hello);
</script>