Ну просто если через геттеры и сеттеры можно получить точно такой же доступ (если не задавать определенных параметров), то в чем смысл?
В том, что ты не задаешь логику, пока она не нужна (как и саму переменную, кстати, если геттеры без тела). Если она тебе понадобится, добавишь (например, лог выведешь), и это не повлияет на все остальные куски кода. Если же ты что-то сделаешь с паблик-переменной (переименуешь или изменить тип, или область видимости), то весь код, который от неё зависел, перестанет работать