Добавление узла создает отношения родитель-потомок между узлом и узлом, к которому он добавляется.
Узел не может иметь двух родителей, поэтому при добавлении узла года во вторую книгуон удаляется с первого раза.Вам необходимо создать узел для каждой книги.
for my $book ($xml->findnodes('//book')) {
my $year = XML::LibXML::Element->new('year');
$year->appendTextNode('2005');
$book->addChild($year);
}
или
my $year = XML::LibXML::Element->new('year');
$year->appendTextNode('2005');
for my $book ($xml->findnodes('//book')) {
$book->addChild( $year->cloneNode(1) );
}