Что такого хорошего в иммутабельности?
Иммутабельность - это про гарантию, что ты случайно не изменишь то значение, которое тебе передали извне.
И что функция, в которую ты передал своё значение, не изменит его.

Вот тупой пример:
let today = now().date
let tomorrow = today.addDays(1)
assert(today != tomorrow)
И вот если DateTime мутабельный, то мы можем словить ошибку в этой ситуации.
Иммутабельность же позволяет на корню этого избежать.

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

А отстутсвие сайд-эффектов позволяет делать вычисления ленивыми, и тоже даёт возможность безопасно распараллеливать, тк нет привязки к порядку операций.
Иммутабельность упрощяет композируемость - состыковать разные куски кода легче, если они свободны от побочных эффектов. Кроме того иммутабельный код при прочих равных проще читать и модифицировать.