Aì a portabilidade do Java ganha peso no caso de ser possível criar uma estrutura maior, pela orientação a objeto, e ser possível trabalhar em camadas (n-Tier), montar apliccation servers, etc.
Mas enfim, voltando, não existe panacéia nem linguagem perfeita.
Só para lembrar um caso que me vem à mente, um doido na empresa que trabalho hoje escreveu um serviço em Java (um segmentador de arquivos)... só que se esqueceu que já estava num broker (ECX, não, não devem conhecer), que por sua vez chamava uma lista de processos, e este processo em Java, que (imaginem) ainda abria sua bendita JVM, ... é como colocar um elefante numa garrafa !
Tem processos em PERL muito mais eficientes que fazem isso consumindo menos, e portanto mais práticos também.
E olha que Java é meu ganha-pão (principal) desde 2000, mais ou menos.