Поясняващ фрагмент от документите:

Неизменността прави проследяването на промените евтино. Промяната винаги ще доведе до нов обект, така че трябва само да проверим дали препратката към обекта е променена. Например в този обикновен 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 се е променило.