" Vezmete si ze mate auto a chcete mu zmenit barvu ... myslite, ze bude jednodussi mit immutable auto a vytvorit kopii auta s jinou barvou(i v realnem svete)? Ne, jednodussi bude tu barvu prestrikat."
no a tím se i do reálného světa vnesla nekonzistence a je zaděláno na průser - je nutné (ideálně v transakci :-/) změnit údaje ve velkém techničáku, v malém techničáku, megapoctivá ovečka by šla ještě oznámit, aby si MP změnila fotky z radarů :-) apod.
Dtto podobná "jednoduchá změna": osoba.setSurname("Novák"). No v SW jednoduché, v praktickém světě se po této změně ta osoba nachází v dost zvláštním režimu, třeba jí taky nemusí dát na poště její doporučený dopis, problémy v bance apod.apod.
Krátce - mutabilita je dost problematický koncept. Nebudu se moc rozepisovat, protože Rich Hickey o tom dokáže mluvit mnohem líp -
https://www.infoq.com/presentations/Value-Identity-State-Rich-Hickey. Fakt doporučuju přečíst, jinak budou debaty OOP vs FP dost plytké...