На самом деле он будет использовать объекты DOM, удаленные вызовом .remove()
- он использует не innerHTML, а фактические узлы DOM. Нет необходимости копировать, так как предыдущие объекты DOM были удалены из DOM и доступны для вставки.
Если вы посмотрите на код jQuery 1.7, функция удаления внутренне вызывает:
elem.parentNode.removeChild( elem )
, который просто удаляет узел из DOM. Все узлы остаются в объекте jQuery, поэтому при вызове append для этого объекта jQuery все они все еще доступны для непосредственного добавления к любой копии или преобразованию.