Eines der älteren, aber inzwischen gescholssenen propsals schlägt das einführen von opt-in non-nullable Typen. Sowas a la "string! name", wobei das ! eben den non-nullable Typ deklariert. Damit würde man zur Design time nicht mehr "string" zu "string!" zuweisen können.
Das wäre extrem hässlich, finde ich. Non-nullable sollte auf jeden Fall der Default sein. Nullable ist der Sonderfall (der hoffentlich selten vorkommt). Man will nicht sämtliche Typen in Zukunft mit Ausrufezeichen markieren müssen.
Das github.com/dotnet/roslyn/issues/5032 proposal ist ein wenig anders
Das klingt auf jeden Fall sinnvoller, verspricht aber naturgemäß einen schmerzhafteren Umstieg.