An immutable ledger can make a historical record difficult to alter under a particular set of rules. It cannot independently decide whether those rules should remain the rules. That second question belongs to people, software maintainers and the organizations that connect a chain to everyday activity.
The Ethereum Foundation's July 20 hard-fork notice makes the distinction concrete. A protocol change was activated in response to the DAO situation. Describing the outcome requires more than inspecting whether the previous chain of blocks was internally consistent.
There are at least three layers here. First, a node checks whether a proposed block follows the rules it implements. Second, participants choose which software and rules to use. Third, exchanges, applications and other services decide what their interfaces call the resulting assets and networks.
Only the first layer is resolved by executing the validation code already installed on a node. The others involve coordination. They may be influenced by economic incentives, practical constraints and disagreements about what the system was intended to promise.
An analogy with an uncomfortable limit
A database can preserve a sequence of transactions exactly while the people responsible for it disagree about whether an entry should have happened. Traditional systems usually hide that disagreement behind an administrator's authority. A public blockchain makes the allocation of authority more visible, but visibility does not remove it.
The analogy stops short of saying the systems are equivalent. A conventional operator can often change its own database unilaterally. In a public network, convincing other participants to adopt a change is a different and potentially much harder problem. The possibility of disagreement is part of the design.
I find this more informative than treating "code is law" as either a complete description or an obvious mistake. Code defines enforceable behavior within a running system. It does not specify every social decision about maintaining, naming or abandoning that system.
What the interface leaves out
A wallet showing one balance encourages a singular story: this is the network, this is the asset, and this is the history. During a contested change, that clean presentation depends on choices made elsewhere.
For an application builder, those choices are dependencies. Which chain does the application observe? What does it consider final enough to act on? How does it distinguish an exceptional protocol event from an ordinary confirmation delay?
None of those questions requires a prediction about a coin's price. They are questions about the boundary between software behavior and the meaning attached to it.
The useful lesson of the fork is not that ledgers are secretly editable text files. It is that an integrity mechanism and a governance process solve different problems. A system becomes easier to reason about when its promises say which problem they actually cover.