Что касается переопределения метода с помощью
void f(int value) { f((byte)value); }
, это позволит использовать f(0)
f(0)