Ноль - чрезвычайно мощная функция. Что вы делаете, если у вас есть отсутствие значения? Это NULL!
Одна школа мысли - никогда не возвращать ноль, другая - всегда. Например, некоторые говорят, что вы должны вернуть действительный, но пустой объект.
Я предпочитаю ноль, поскольку для меня это более верный признак того, что это на самом деле. Если я не могу получить сущность из своего слоя постоянства, я хочу ноль. Я не хочу пустого значения. Но это я.
Это особенно удобно с примитивами. Например, если у меня есть истина или ложь, но это используется в форме безопасности, где разрешение может быть Разрешить, Запретить или не задано. Ну, я хочу, чтобы это значение не было нулевым. Так я могу использовать bool?
Я мог бы рассказать о гораздо большем, но я оставлю это там.