Если вы не вернете целое число, то поведение не будет четко определено (возможно, не определено, но стандарт не запомнен). Ваш компилятор, скорее всего, выдаст предупреждение, если у вас есть предупреждения.
Что касается возврата целого числа, отличного от 0, да, вы можете сделать это. Важным является тип возврата функции, когда речь идет о том, что вы можете и не можете вернуть. Тем не менее, возвращение другого результата может не дать желаемого эффекта в зависимости от того, что делает ваша функция. Иногда такие значения, как ноль, зарезервированы для особых условий, например, не найдены.