When removing a parent bone, the bone is removed from the Parameters panel, but it still appears in the canvas because child bones keep referencing the deleted bone as their parent.
The deleted bone is no longer visible in the hierarchy panel, but the child bones still behave as if the deleted bone is their parent.
What about to forbid the deletion at first and offer the choice to the user?
Something like “Hey, you are about to mess everything, what would you like to do?”
Then to propose the alternatives (and to propose to do a proper backup before ^^)
The question now is:
Should we delete only the selected bone and reparent its children to None (which would disconnect the skeleton and result in multiple root bones) or should we delete the entire subtree?
This is where we could provide the alternatives.
Reparent to None (make them independant)
Reparent to Bone 4 to Bone 2 (the original parent of Bone 3)
Delete the subtree
But we also need to check the consequences and apply it to all the Kaypoints/Keyframes that are impacted.
Otherwise there will be other side-effects bugs
I’d go for the default behavior, and that would be “delete the subtree”. Currently we already have a “reparent” action, so if someone wants to split the skeleton into “two”, s/he could reparent to None first. I suppose this latter case wouldn’t be a common need.