C # Genéricos y polimorfismo: ¿un oxímoron?

Solo quiero confirmar lo que he entendido sobre los genéricos en C #. Esto surgió en un par de bases de código en las que he trabajado, donde se utiliza una clase base genérica para crear instancias derivadas seguras para el tipo. Un ejemplo muy simple de lo que estoy hablando,

public class SomeClass<T>
{
    public virtual void SomeMethod(){ }
}

public class DeriveFrom :SomeClass<string>
{
    public override void SomeMethod()
    {
        base.SomeMethod();
    }
}

El problema surge cuando luego quiero usar instancias derivadas de una manera polimórfica.

public class ClientCode
{
    public void DoSomethingClienty()
    {
        Factory factory = new Factory();
        //Doesn't compile because SomeClass needs a type parameter!
        SomeClass someInstance = factory.Create();

        someInstance.SomeMethod();
    }
}

Parece que una vez que introduce un genérico en una jerarquía o interfaz de herencia, ya no puede usar esa familia de clases de forma polimórfica, excepto tal vez interna a sí misma. ¿Es eso cierto?

Respuestas a la pregunta(6)

Su respuesta a la pregunta