Tipos de referencia no anulables

Estoy diseñando un lenguaje y me pregunto si es razonable hacer que los tipos de referencia no sean anulables de forma predeterminada, y use "?" para valores anulables y tipos de referencia. ¿Hay algún problema con esto? ¿Qué harías al respecto?

class Foo {
    Bar? b;
    Bar b2;
    Foo() {
        b.DoSomething(); //valid, but will cause exception
        b2.DoSomething(); //?
    }
}

Respuestas a la pregunta(7)

Su respuesta a la pregunta