Да, именно так. Если предположить, что «большой объект» на самом деле является эталонным графом множества меньших объектов, то типичное «обновление неизменяемого» просто создает один или два новых небольших объекта и ссылается на те же старые объекты для остальных.
Например, если у Person есть имя и адрес, а у Address есть улица, город, штат и почтовый индекс, и мне нужно обновить почтовый индекс человека, то мне нужно только создать новые объекты для связующего дерева из корень на молнии. Смотрите, например красно-черные цветные диаграммы в этом блоге . В примере person объекты Name, Street, City и State будут использоваться повторно, но ZIp будет новым объектом, а Address будет новым объектом (так как он содержит новый Zip), а Person будет новый объект (так как он содержит новый адрес). Имеет ли это смысл?