DataSet.WriteXMLがXML宣言を出力しない

表題のメソッドを引数無し使ってもXML宣言はスタンドアロンとして出力されていたと思うんだが。

<?xml version="1.0" standalone="yes"?>
<hoge:root xmlns:hoge="〜">
  <hoge:table>
    〜
  </hoge:table>
</hoge:root>

さっき久しぶりにWindows7 VS2008上でビルドして動かしたらXML宣言は出力されないわ、ルートタグがきちんと閉じずにXML構造は壊れるわでびっくりした。

<hoge:root xmlns:hoge="〜">
</hoge:root>foobar>
 </hoge:table>
</hoge:root>

.NET2.0の頃に作ったアプリケーションなんだが、〜.NET3.0〜.NET3.5SP1に至る間に何かあったんだろうか。

XmlTextWriter writer = new XmlTextWriter(fs, Encoding.UTF8);
writer.Formatting = Formatting.Indented;
writer.WriteStartDocument();
this.table.DataSet.WriteXml(writer);

こうしてXmlTextWriter#WriteStartDocumentを挟むと、当然の如くXML宣言が出力されるようになるが、腑に落ちないよな。