Our previous approach to detecting when we needed to remove semantics nodes didn't account for reparenting.