Na minha opinião, o Java possui os seguintes itens que precisam ser melhorados:
Framework de GUI: o Swing ainda não se firmou como solução ideal de GUI mas a Sun se opõe fortemente a outras soluções desenvolvidas pela comunidade (ex. SWT).
Biblioteca pouco intuitiva: a linguagem Java em si é simples e ao mesmo tempo poderosa. No entanto muito da sua biblioteca core é de implementação complexa e difere muito de soluções similares existentes no mercado.
Muitos frameworks: a enorme quantidade de frameworks existentes acaba confundindo até mesmo a desenvolvedores experientes em Java. Eu acredito que no SDK do Java deveria vir os principais framewoks (mesmo os pagos, porém em verão demo), conforme eleitos pela comunidade.
Prepotência: tem-se pregado que a tecnologia Java pode resolver qualquer problema computacional, o que não é verdade. Muitos acabam entrando nessa e se decepcionam. Eu acredito que deveria se concentrar no que ela tem de melhor e não querer abraçar o mundo. Deixa isso para a Microsoft ;o)
Acho que a coisa não é bem por aí.
Framework de GUI: pode até fazer sentido, mas levando em consideração que praticamente tudo está sendo migrado para web, isso deixará de fazer sentido.
Biblioteca pouco intuitiva: a api padrão do java pode até ser complexa, mas funcionando bem que mal tem, tu não vai meter a mão em código já existente. Se tu quer dizer, complexa no sentido de ineficiente, posso concordar que algumas coisas foram porcamente criadas, tipo toda parte de datas e que além de ruim, é bem chatinha de se utilizar, tirando isso, tudo muito bom. Mas como tu mesmo disse, se mesmo assim alguma coisa API padrão não for boa o suficiente ou inexistente, procura-se na comunidade.
Muitos frameworks: não vejo isso como um ponto negativo, muito pelo contrário, é um ponto super positivo. Ta começando a programar com Java, começa de baixo para cima. Quer ter certeza de que o framework que tu vai utilizar é realmente tudo aquilo que tu precisas? Leia a documentação, faça protótipos (em outras palavras, seja menos preguiçoso, conhecimento nunca é demais).
Prepotência: Não é problema da linguagem e sim das pessoas, por isso não vou nem comentar. Prepotência não é ponto fraco da linguagem.