Presumo que você esteja falando de métodos públicos, privados e protegidos aqui?
Nesse caso, eles não existem para fins de segurança. Eles existem com o objetivo de facilitar a garantia de que o software seja modularizado adequadamente. (Se eles terão sucesso nesse debate, deixarei para os outros. Essa é, no entanto, a visão do que eles servem.)
Suponha que eu forneça uma biblioteca e, em seguida, esteja livre para entregar uma versão diferente da biblioteca e alterar as coisas marcadas como privadas, tanto quanto eu quiser. Por outro lado, se eu não tivesse marcado essas coisas como privadas, seria incapaz de alterar quaisquer componentes internos do meu software porque alguém, em algum lugar, provavelmente está acessando diretamente. Claro, em teoria, a culpa é deles por não usar a API documentada. Mas o cliente perceberá como minha culpa que minha atualização de software quebrou o software deles. Eles não querem desculpas, querem consertar. Mas se eu não permitir que eles tenham acesso, minha API é exatamente o método público que eu pretendia ser minha API e o problema é evitado.
A segunda coisa mais provável sobre a qual você poderia estar falando é o modelo de segurança do Java. Se você está falando sobre isso, o motivo é que a visão original para Java envolvia pessoas enviando applets possivelmente não confiáveis para trabalhar interativamente dentro de programas de terceiros (por exemplo, navegadores). Portanto, o modelo de segurança foi criado para oferecer aos usuários alguma proteção contra miniaplicativos maliciosos. Portanto, a ameaça de segurança com a qual se preocupar e se proteger são applets não confiáveis que tentam interagir com outro software que pode ser carregado.