Потому что, если вы попытаетесь использовать Int32, в этой ситуации будет OverflowException (возможно).И есть какие-то моменты, в которые будут брошены большие объекты.Например:
int firstNumber = 10;
long secondNumber = 100;
var result = firstNumber + secondNumber;
(результат - длинный) Если вы мне не верите, вы можете проверить.
Это происходит из-за автоматического приведения к типу параметра определенного метода.В вашем случае это «%».В случае знака «+» вы можете переопределить оператор и указать собственную реализацию этого оператора.