Помимо ответа, что отражение может обходить проверки (что правильно), это также то, что нужно другим внутренним частям JDK, в частности сериализации и десериализации объектов по умолчанию. В целом это разрешено, потому что многие инструменты выигрывают от такого доступа. И, как правильно отметили другие, права доступа не являются реальными барьерами безопасности. Они призваны помочь программистам правильно проектировать абстракции, облегчить создание хороших проектов.