Они «безопасны» в том смысле, что только код в лексической области действия замыкания может напрямую получать доступ к переменным области действия замыкания. Я рекомендую прочитать Замечания по закрытию Jibbering , в целом.
Любой «протекший» объект может по-прежнему вводить точку манипулирования данными / побочного эффекта. Замыкания в ECMAScript не более «безопасны», чем в любом другом языке с аналогичной семантикой замыканий - в этом смысле «безопасный» означает «доступ к частной переменной». С другой стороны, некоторые языки уже имеют более контролируемые модификаторы видимости членов (например, Java или C # с частными / открытыми различиями).
Это, конечно, если считать объекты JavaScript, которые "просто" полагаются на прототипы, "небезопасными". (Если кто-то использует мой код неправильно, пусть он - а если он сломается, пусть он сгорит; -)
Лично я нахожу мистера Крокфорда хорошим евангелистом, но не для моей религии ;-) Можно сказать о X все хорошее, не анализируя его по отношению к Y.