ヌルポとみせかけてヌルリ

ヌルポってC#ではヌルリ(NullReferenceException)なんだね。知ってても何の得もないけど。
それはともかく、ヌルp・・・もといヌルリで落ちるのは恥とでも思われているのか、やたらといたるところでNullチェックを強いられているコードが目の前にある。

    static class Checkers
    {
        public static bool IsNull(object p)
        {
            return p == null;
        }
    }

こんなのがあって、いたるところでCheckers.IsNull(Hoge)みたく使うことを強いられている。
それはまあいいのだが、このCheckers.IsNull(Hoge)の使い方でおやおや?とおもったのがint型のプロパティまでNullチェックしてること(↓コード)。
羹に凝りて膾を吹く、を地でいくような世界。

        private static void Proc2()
        {
            myclass m = new myclass();
            bool result2 = Checkers.IsNull(m.NonNullableValue);     //これはつねにfalse
            Console.WriteLine("{0}", result2);
        }

    class myclass
    {
        public int NonNullableValue { get; set; }
    }

まさかint型プロパティの持ち主のNullチェックもできるのか?とおもったが

        private static void Proc3()
        {
            myclass m2 = null;
            bool result2 = Checkers.IsNull(m2.NonNullableValue);    //ヌルリ
            Console.WriteLine("{0}", result2);
        }

ヌルリで落ちた。うーん、int型プロパティまでNullチェックしようとした人の気持ちがわからん。チェックに引っかかったケースの動作確認どうしたのだろう?