何やらsjis変換前の文字コードをJcode::getcode($target)
で調べてみたら「ascii」とか出てきてしまいました。

おかしいと思い変換前の日本語をファイル出力して、それを
EmEditorで読ませるとちゃんとutf8として自動判別されます。
もちろん文字化けしていない、大元のShift_JISだったころの日本語です。

XML::DOM::Parserも内部処理ではutf8で処理してるはずなので、
エディタの判定が正しいのは明らかなのですが。。