Накратко
Замразяването не е автоматично рекурсивно.
Полезно е да знаеш
Object.freeze() забранява определени промени по самия обект, включително добавяне и премахване на свойства и смяна на техните стойности. Вложен обект обаче не се замразява автоматично. [1]
Например при Object.freeze({options: {size: 2}}) вътрешното options още може да се променя, ако не е отделно замразено. Това е важно за споделени настройки. Не описвай freeze като защита от всяка промяна на целия граф от данни. При строг режим опит за недопустим запис може да хвърли грешка; начинът на обработката ѝ също е част от поведението.
Източници
За повече подробности и проверка на информацията: