I have found that i would want to replace a given node in-place, the current workaround i use i to just push a new sibling, then prune the current node:
node_mut.push_sibling_tree(Side::Left, new_tree);
node_mut.prune();
Maybe i am just missing something?
Realworld code