Ответ 1
Полное раскрытие: я работаю над командой С# в Microsoft.
Диагностическая отчетность от компилятора - сложный бизнес! Мы проводим много времени, пытаясь обеспечить, чтобы "лучшая" диагностика сообщалась для определенного условия ошибки. Однако это иногда требует учета эвристики, и мы не всегда получаем это право. В этом случае, как отмечает Хенрик Холтерман, обе ошибки являются разумными (по крайней мере, для второго случая).
Первый пример - явно ошибка, хотя и низкая. В конце концов, это все еще ошибка с несколько "правильной" (я здесь немного милостива). Во втором примере обе ошибки верны, но компилятор не смог выбрать "лучший" и, надеюсь, самый полезный диагностический.
С компилятором Roslyn С# у нас появилась возможность взглянуть на нашу диагностическую отчетность и сделать лучший выбор. Для этих конкретных примеров компиляторы Roslyn действительно вызывают ошибки, которые вы ожидали. В первом примере сообщается CS0122, а во втором случае сообщается CS1729. Таким образом, вы можете быть уверены, что это уже исправлено в будущей версии.