Like I said in my original reply, “aside from a roundabout with manually unparenting and reparenting every gap with Keep Transform”.
I’m not making it seem a mountain. I’m talking about general case. A more practical solution is needed. This question keeps popping up every now and then.
See, the logical extension of the original question is: if I can do it for one root, how would I do it for several? The answer then becomes either “do it peacemeal”, or “dance with carefully extending selection”. Even two roots is a handful: select one, select children, shift+select the second root, select children and tick Extend, unselect the second root (which, in a real scene with many objects closeby, may not be that fun of a task either, given how Blender’s object selection works). And after doing the unparenting, go back and select the roots again, which were what you needed in the first place. This process “smells”, so to speak. It should be as simple as “select what you need, hit a button (hotkey, menu, whatever)”. Which is, incidentally, Blender’s own design philosophy.