Дак фишка ещё в том, что всё же это int, можно б было и согласиться если б например было float, так нет же
если компилятор за тебя додумал, что ты имел в ввиду, то проблема null-значния никуда не уйдет, ты никак не отличишь "истинный" ноль, обозначающий, что значения int нет, от физического, нуля, когда просто передается значение, равное 0, и решилась только введением nullable типов