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