Por que transmitir para um objeto ao comparar com null?

Enquanto navegava nas documentações do MSDN sobre substituições Equals, um ponto chamou minha atenção.

Nos exemplos deesta página específica, são feitas algumas verificações nulas e os objetos são convertidos para o tipo System.Object ao fazer a comparação:

public override bool Equals(System.Object obj)
{
    // If parameter is null return false.
    if (obj == null)
    {
        return false;
    }

    // If parameter cannot be cast to Point return false.
    TwoDPoint p = obj as TwoDPoint;
    if ((System.Object)p == null)
    {
        return false;
    }

    // Return true if the fields match:
    return (x == p.x) && (y == p.y);
}

Existe um motivo específico para usar esse elenco, ou é apenas algum código "inútil" esquecido neste exemplo?

questionAnswers(5)

yourAnswerToTheQuestion