Double.TryParseは例外をスローしない?

http://bugzilla.ximian.com/show_bug.cgi?id=72221でMonoが16進数のパースが出来ないという不具合報告がありました。

using System;
using System.Globalization;

class X
{
  public static void Main ()
  {
    string str = "0dead";
    double d;

    // Console.WriteLine(Double.Parse (str, NumberStyles.HexNumber));
    Console.WriteLine(Double.TryParse (str, NumberStyles.HexNumber, null, out d));
  }
}

上記サンプルを実行すると、

MS.NET : True
Mono   : False

となります。

しかし、TryParseのドキュメントを見ると変換元となる文字列は、

MSDNから引用

s パラメータには、 PositiveInfinitySymbol 、 NegativeInfinitySymbol 、 NaNSymbol 、または次の書式の文字列を格納できます。

[ws][sign]integral-digits[.[fractional-digits]][e[sign]exponential-digits][ws]

省略可能な項目は、角かっこ ([および]) で囲まれています。"digits" という語を含む項目は、0 から 9 までの一連の数字から構成されます。

と書いてあり、16進文字列はサポートしていない様に思えます。なので、TryParseをParseに変えて実行するとMonoでは例外が発生します。

System.ArgumentException: An invalid argument was specified.

では、これはプログラムとドキュメントのどちらのバグなんでしょうか? で、試しに.NET2.0 Betaで実行してみたところ、

System.ArgumentException: The number style AllowHexSpecifier is not supported on floating pont data types.

と、例外がスローされ、16進数はサポートしないとハッキリと言われます。Monoの実装の方が正しそうです。これで解決かと思いきや、.NET2.0はParseだけでなく、TryParseでも例外をスローしてくれます。あれ? TryParseは例外をスローしないんじゃ・・・
MSDNから引用

TryParse メソッドは、変換が失敗した場合でも例外をスローしない点を除いては、 Parse メソッドと同じです。

ひょっとして、NumberStyles.HexNumberという間違ったパラメータを指定することは変換失敗ではなく、TryParseの呼び出し方が間違っているという解釈になりますか? これは見落とすよなぁ・・・(^^;

(追記) という話をMonoのメーリングリスト等でやりたいのですが、英語力がないので一言、

.NET1.x bug?

と書いて終わってしまいます。(^^;