Non sapevo nemmeno che fosse possibile usare tnsnames con il thin driver, ma a quanto pare è stato aggiunto da qualche parte nella versione 10:
http://docs.oracle.com/cd/B19306_01/java.102/b14355/urls.htm#BEIDIJCE
In particolare:
Nota:
Quando si utilizza TNSNames con il driver JDBC Thin, è necessario impostare la proprietà oracle.net.tns_admin sulla directory che contiene il file tnsnames.ora.
java -Doracle.net.tns_admin=%ORACLE_HOME%\network\admin
Come accennato, non ho verificato se questo effettivamente funziona.
Non credo che la logica "trova la directory di configurazione di rete effettiva" sia disponibile tramite alcune funzioni Oracle. Dovrai farlo manualmente come indicato nella tua domanda, o forse fare affidamento sulla presenza della variabile di ambiente TNS_ADMIN. In tal caso, l'invocazione di java sarebbe
java -Doracle.net.tns_admin=%TNS_ADMIN%