Есть еще одна причина: FxCop ловит экземпляры любого, кто выбрасывает 'Exception', и отмечает его, но допустимо создание экземпляров NotImplementedException.
Мне действительно нравится поведение по умолчанию, потому что оно имеет эту дифференциацию. NotImplementedException не является временным исключением, которое выдается при работе с кодом. Это подразумевает «я имею в виду, я действительно не собираюсь реализовывать это». Если вы оставите codegen таким, какой он есть, вам будет легко отличить в коде биты «я вернусь к этому позже» от бит «я решил не делать этого».