Обнуляемые структуры - это боль, и нет веской причины, по которой Microsoft должна усложнять ситуацию. Это сделано таким образом, чтобы облегчить работу авторам компилятора, а не пользователям языка.
На самом деле нет веской причины, по которой нам нужно, чтобы ссылочные типы и типы значений вели себя по-разному. Microsoft пытается скрыть логические указатели (адреса), но это работает не очень хорошо, потому что это усложняет, а не облегчает. Каждое правило и ограничение, налагаемое на язык, усложняет ситуацию и приводит к неэффективности, ошибкам во время выполнения и более высоким затратам на разработку.
Нам всем было бы лучше, если бы мы вернулись к логически типизированным указателям. Тогда нам не понадобятся такие красивые слова, как неизменные. (неизменный означает неизменный!)
Мое предложение состоит в том, чтобы отказаться от структур Nullable и сделать их классом, который всегда можно обнулять.