1>
все больше задумываюсь- вот нахрена эти private и public ?
защита от дурака при организации разработки совместных групп? нахрена это языку?
все эти модификаторы вскрываются на раз при помощи рефлекшена, если в голове бардак ну никакие модификаторы не спасут
2>
ты всё правильно говоришь. Но есть ещё такая штука: публичное апи.
И с ним такая проблема: как только ты что-то вывалил наружу, ты уже не можешь вернуть это взад.
И разработчикам библиотек приходится много думать над этим: какой сделать публичное апи такое, чтобы была доступна вся функциональность, но с другой стороны которая бы давала свободу переделывать чего-нибудь под капотом.
Для разработчиков приложений да, разделять приват/паблик достаточно бесполезное занятие. Учитывая, что каждый раз когда я натыкался на приватный метод, я лез в код и переписывал на паблик если было нужно.