I feel that you are mixing Java (J2SE) with J2EE a bit, and totally neglect J2ME.
So in my opinion the latest release of J2SE is capable to implement 3D graphics games, without any big performance penalty, that could be even justified by easier development/debugging. With webstart or applets distribution and updates can be greatly simplified, which can be an important factor, too. LWJGL supports OpenGL graphics, OpenAL and DevIL.
J2EE: it's the web framework, that generally have all the advantages and disadvantages you were referring to. It is mainly for serverside use, but client applications can also access entities directly. It might have greater resource overhead at startup, but it is justified when scaling comes into view (it only needs new threads instead of processes).
For distributed games, Sun has an Opensource engine, that pretty much handles everything, called Project Darkstar.
J2ME: very light resource usage, supported by all mid- and highend mobile devices, some of them even support 3D or vector graphics extensions.
C++: extremly fast is a bit funny if you compare it with assembler or vanilla C, but it's definitely much faster than ActionScript or VB

Also, platform independence is present, but many limitations of the underlying architecture is exposed, so you must be careful, datatypes might not have the same range, etc. For engineering it's a hell of a mess language, so I would either go with C or Java and forget that raped object orientation present in C++.
Anyway, I think we could give much better answers if superfly007 would specify what kind of games he would like to write.