Ni siquiera sabía que era posible usar tnsnames con el controlador delgado, pero aparentemente se agregó en algún lugar de la versión 10:
http://docs.oracle.com/cd/B19306_01/java.102/b14355/urls.htm#BEIDIJCE
En particular:
Nota:
Cuando utilice TNSNames con el controlador JDBC Thin, debe establecer la propiedad oracle.net.tns_admin en el directorio que contiene su archivo tnsnames.ora.
java -Doracle.net.tns_admin=%ORACLE_HOME%\network\admin
Como se mencionó, no he comprobado si esto realmente funciona.
No creo que la lógica "buscar el directorio de configuración de red real" esté disponible a través de alguna función de Oracle. Tendrá que hacerlo manualmente como se describe en su pregunta, o tal vez confiar en que la variable de entorno TNS_ADMIN esté presente. En ese caso, la invocación de Java sería
java -Doracle.net.tns_admin=%TNS_ADMIN%