Isso resolve a violação de retângulo quadrado Liskov Substituição?

Sou muito novo nos princípios de design do SOLID. Uma coisa que eu tive problema com a compreensão é o exemplo do "Retângulo Quadrado" de uma violação do Princípio de Substituição de Liskov. Por que o setter Height / Width de um Square deve substituir os de um Rectangle? Não é exatamente isso que está causando o problema quando há polimorfismo?

Não remover isso resolve o problema?

class Rectangle
{
    public /*virtual*/ double Height { get; set; }
    public /*virtual*/ double Width { get; set; }
    public double Area() { return Height * Width; }
}

class Square : Rectangle
{
    double _width; 
    double _height;
    public /*override*/ double Height
    {
        get
        {
            return _height;
        }
        set
        {
            _height = _width = value;
        }
    }
    public /*override*/ double Width
    {
        get
        {
            return _width;
        }
        set
        {
            _width = _height = value;
        }
    }
}

class Program
{
    static void Main(string[] args)
    {
        Rectangle r = new Square();
        r.Height = 5;
        r.Width = 6;

        Console.WriteLine(r.Area());
        Console.ReadLine();
    }
}

A saída é 30 como esperado.