Это связано с тем, что инструкции по обработке генерируются вне дерева root XML. Эта проблема возникла как ошибка много лет go на сайте L XML, но, к сожалению, похоже, что соответствующее исправление не было реализовано.
Один из пользователей в потоке предоставил (hackyi sh) способ удаления инструкций обработки, сгенерированных таким образом. Просто возьмите тег, добавьте его к элементу root, а затем удалите его.
В отличие от некоторых других библиотек XML, l xml позволяет элементу появляться в одном месте. То есть вы не можете скопировать элемент в другое место; попытка переместить его в новое место, удалив из старого.
from lxml.etree import XML, tounicode
root = XML("<ROOT/><?foo?>")
print(tounicode(root.getroottree()))
>>> <ROOT/><?foo?>
tail = root.getnext()
root.append(tail)
root.remove(tail)
print(tounicode(root.getroottree()))
>>> <ROOT/>