Eu nem sabia que usar tnsnames com o driver thin é possível, mas aparentemente foi adicionado em algum lugar na versão 10:
http://docs.oracle.com/cd/B19306_01/java.102/b14355/urls.htm#BEIDIJCE
Em particular:
Observação:
Ao usar TNSNames com o driver JDBC Thin, você deve configurar a propriedade oracle.net.tns_admin para o diretório que contém seu arquivo tnsnames.ora.
java -Doracle.net.tns_admin=%ORACLE_HOME%\network\admin
Como mencionado, não verifiquei se isso realmente funciona.
Eu não acho que a lógica "encontrar o diretório de configuração de rede real" esteja disponível por meio de alguma função do Oracle. Você terá que fazer isso manualmente, conforme descrito em sua pergunta, ou talvez confiar na presença da variável de ambiente TNS_ADMIN. Nesse caso, a invocação java seria
java -Doracle.net.tns_admin=%TNS_ADMIN%