これは、すべての設計ガイドラインに反するようです。型 T の単一の引数を受け入れる静的メソッドは、通常、単なるメンバー メソッドであるべきです。
IsUpper が存在することを理解するために、実際にStackOverflow の質問を投稿する必要がありました (オートコンプリートに表示されなかったため)。
編集
私の以前の発言には少し説明が必要であることは理解しています。良い設計の例は String.ToLower() です。static void ToLower(String foo) としてプロトタイプ化される代わりに、メンバー メソッドです。同じことがchar.IsLower()にも当てはまることは(少なくとも私には)明らかです。