Tipos de referência não anuláveis

Estou projetando uma linguagem e estou imaginando se é razoável tornar os tipos de referência não nulos por padrão e usar "?" para valor anulável e tipos de referência. Há algum problema com isso? O que você faria sobre isso:

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

questionAnswers(7)

yourAnswerToTheQuestion