Resolución del método de extensión con parámetros de tipo de valor anulable

public static class Extension
{
    public static void Test(this DateTime? dt)
    {
    }
}


void Main()
{
    var now = DateTime.Now;
    Extension.Test(now); // ok
    now.Test(); // compile time error
}

Solo tengo curiosidad, ¿por qué el compilador no puede resolver el mismo método cuando se lo llama como una extensión?

Respuestas a la pregunta(5)

Su respuesta a la pregunta