Current version of the State and MerkleNodeState interfaces and their implementations include a copy method, which is inconsistent with the idea of StateLifecycleManager managing references to a mutable state and the latest immutable state.
All copy creation should be done through StateLifecycleManager to ensure that we never create a copy of the state that StateLifecycleManager is not aware of.