Isso acontece porque /(.*)\n/ também está correspondendo a uma nova linha simples ( \n : seqüência vazia, seguida por nova linha, seguida da sequência vazia mesma desde o início).
Por isso, também corresponderá à string one_more\ntwo do seu exemplo.
Para evitar isso, você precisará ancorar seus regexps, por exemplo sed -E '$!N;/^(.+)\n/!P;D' ou sed -E '$!N;/^(.*)\n/!P;D' .