Perl, 45 bytes
;print$_=<>,~~reverse;m;esrever~~,><=_$tnirp;
Bem simples, printé a entrada ( $_=<>) seguida pela reverse. reverseretorna $_porque o estamos usando no contexto escalar prefixando com ~~. Em seguida, combinamos ( m//usando ;como delimitador), no contexto nulo, contra o reverso do script.
Se pudermos garantir, não precisaremos criar um palíndromo, esrever,><=_$tnirppois podemos reduzir o código para 43 bytes :
g.print$_=<>,reverse.m.esrever,><=_$tnirp.g
Uso
echo -n 'neverod' | perl -e 'g.print$_=<>,reverse.m.esrever,><=_$tnirp.g'
neveroddoreven
Perl, 26 bytes
Inclui código de 25 bytes + 1 para -p.
$_.=reverse;m;esrever=._$
Eu não acho que isso seja válido, pois requer a -pbandeira que eu acho que não pode ser facilmente combinada com o conteúdo do script para criar um verdadeiro palíndromo. Praticamente as mesmas chamadas acima, exceto que se baseia no fato de que -ptambém adiciona um ;segundo plano (nos Perls mais recentes ...) para fechar o m//.
Uso
echo -n 'neverod' | perl -pe ';$_.=reverse;m;esrever=._$;'
neveroddoreven