Concordo...se un metodo non serve a chi userà quella classe meglio farlo private o protected.
Se tutto fosse pubblico potrebbero più facilmente verificarsi errori ad esempio modificando variabili che non devono essere modificate direttamente!
Come diceva guidoz, se i costruttori di macchine non mettessero i motori dentro al cofano ci si potrebbe fare male!!!
Non conosco il PHP5 comunque in C++ si fa largo uso di questi modificatori inclusi i modificatori const in modo da sapere esattamente la tipologia di operazioni ammesse per quell'oggetto.