You very much do want immutable and persistent records of financial transactions. That's the whole point of having a ledger in the first place. Error corrections should appear as actual corrections and be dated appropriately.
It depends on what the ledger does. If the ledger is tracking transactions that occur somewhere else and for some reason a transaction is entered incorrectly then immutability will prevent the ledger from being corrected to reflect reality.
I have seen way too many systems that model something that happens somewhere else and provide no way for correcting discrepancies between the system and reality, built on the assumption of either infallible humans or infallible integrations, when the truth is that all humans and all integrations will eventually fail to input data correctly and need the ability to correct anything (no field should ever become fully read-only in such a system, and no status should become fully unreachable from any other status).
> If the ledger is tracking transactions that occur somewhere else and for some reason a transaction is entered incorrectly then immutability will prevent the ledger from being corrected to reflect reality.
You just enter a new operation correcting the issue. If you can't do in in the external ledger, you do it on your own side and then cancel your correction using a new operation when the external ledger is finally corrected.
The point is auditability. You want what's inside the system to reflect what's actually happening.