Lascia perdere le ""elucubrazioini" relative alla ""sicurezza"!
Con il "Reflection" di Java puoi tranquillamente accedere a QUALUNQUE membro privato o meno di QUALUNQUE classe.
I modificatori "private, public, protected, packaged==nessun_modificatore" sono utili per partizionare in modo comodo il codice SORGENTE, ed aiutare il programmatore a NON USARE metodi che non sono accessibili.
SE gli serve un metodo NON accessibile, allora ci sono n-mila strategie per usarlo, ma la scelta della strategia dipende dal PERCHE' lo vuole/deve usare. E questo aiuta a mantenere il codice ""ben organizzato"" (e a far ragionare il programmatore)