BOM-Bomb

UTF8におけるBOM(byte order mark)の扱いだが、例えばJavaではBOM無しが当たり前なのだが.Netだと明示的にUTF8のエンコーディングでストリームを出力するとBOM付きになってしまう(BOM無しにするにはエンコーディングの指定を無し又はBOM無しのUTF8を明示しなくてはならない)

他の言語ではどうなんだろう。 一体何が正しい(標準)んだ。

そもそも、バイトオーダが固定されているはずのUTF8に、BOMを付けるようにしたのは一体何処のどいつだ。