Уточняющий фрагмент из документов:

Неизменяемость делает отслеживание изменений дешевым. Изменение всегда приводит к созданию нового объекта, поэтому нам нужно только проверить, изменилась ли ссылка на объект. Например, в этом обычном коде JavaScript:

const x = { foo: "bar" };
const y = x;
y.foo = "baz";
x === y; // true

Хотя y был отредактирован, поскольку это ссылка на тот же объект, что и x, это сравнение возвращает true. Вы можете написать аналогичный код с immutable.js:

const SomeRecord = Immutable.Record({ foo: null });
const x = new SomeRecord({ foo: 'bar'  });
const y = x.set('foo', 'baz');
x === y; // false

В этом случае, поскольку при изменении x возвращается новая ссылка, мы можем с уверенностью предположить, что x изменилось.