gitはLinuxのことしか考えてないから仕方ないよ。
ファイル名=バイト列なんてのは、ファイルシステムによっては成立しないダメダメな前提なんだけど
そもそも環境変数LANGでファイル名の解釈が変わったりするLinuxでは必要な前提だしね。

だがMercurial、てめーは駄目だ。