Some keys are constant by the nature of their purpose. Others change by the nature of their purpose. Objects normally become constant when holders of keys sufficient to change them, refrain from doing so.
Bugs
Too often the fix makes the object fail in ways unrelated to the intent of the fixer. {Programming is error prone. Even fixing bugs is error prone.}
This behavior is efficient when the trees are short. It is inefficient of storage when many generations occur with no need for the intermediate generations.
More concisely: this scheme is efficient when a derived value is not needed longer than the base value.
Instances of near values
With and without extra charge features
For different environments
A checkpointed state vs. current state