Идея в том, что вы не знаете, кто будет использовать ваш публичный метод.Поэтому вы должны защищаться от неправильного использования с помощью обычных проверок.
С другой стороны, частные методы должны использоваться исключительно разработчиками в вашей текущей команде, поэтому проверки не являются (тем) обязательными (но все же рекомендованы ИМХО).
Так что для проверки правильности аргументов в частных методах должно быть достаточно утверждений.