Can a node have two parents?

That would be the general idea, yes.

You could probably put this code in CullTraverser::traverse_below(), since that’s where it analyzes whether the node should be rendered (and calls node->add_for_draw(this, data)) and whether its children should be visited. You can just check whether the counter matches, and if so, return early from that function.