I dislike the “physical changes aren’t immutable” line of argument. It reminds me of the “objects in your code are just like your VCR” argument in the context of early OO literature: it sounds good, but it ignores reality. We aren’t punching people in the face, and we aren’t pushing buttons on a VCR. We’re doing something more akin to accounting.
Accounting ledgers are immutable. “Received $100; Spent $50; Received $25; Spent $83; Adjust last received by $2…”