dependendo do caso **, a perda de portabilidade nao fará a menor diferença.
como já disseram sabiamente uma vez: vc nao vai trocar de s.o. toda semana.
a vantagem q eu vejo em compilar p/ codigo nativo, é q vc nao terá q ter uma maquina virtual instalada para rodar o aplicativo…
a desvantagem q eu vejo é: creio que as classes padrões do java que vc utilizar(javax.swing…, java.awt… java.net… java.io…, etc), que do modo tradicional já estariam instaladas na máquina q fosse rodar o aplicativo, agora devem ir embutidas no seu executavel, oque o tornaria maior… e nao sei se é sempre q isso ocorre, mas alguns desses “compiladores” colocam uma maquina virtual embutida no seu programa, oq também o tornaria maior.
se os seus bytecodes realmente forem traduzidos para codigo nativo, creio que o “ganho de performance” nem seria um atrativo MUITO grande, visto que java, mesmo sendo “interpretada”, tem um desempenho muito a programas que rodam nativamente.
** - Se for um programa q vc vá disponibilizar num superdownloads da vida, é até interessante manter a portabilidade, pois usuarios de diferentes plataformas podem querer baixar o seu programa… agora, se for algo mais especifico, nao vejo problema em abrir mão da portabilidade se isso for te beneficiar em algo…