A lot of things are moving to the web though... Even enterprise applications, about 40-50% of the enterprise applications at my workplace are web-based.
Very true - the concept of SaaS (Software as a Service) is become very real these days.
I'd learn Java first, then eventually learn C++ if need be. Java is easier, you don't have to mess around with pointers or memory management. It's simpler, and is rather safe to use, easy to debug etc. 
Yep, I agree with this too. Once you've mastered Java, it's only a matter of learning how to manage your stacks and pointers.
If you haven't yet learnt Java, J2SE, they are simply different APIs, as J2EE apps are usually deployed in enterprise/web environments. J2SE for learning/client applications.
I am not sure if J2EE is missing anything from what is included with SE, perhaps some javax stuff is missing? dno
Essentially correct - the amount of packages that are available for you to use differ between SE and EE (and ME, for that matter). Java, as a language, is the same throughout. Most of the time, you will only need to use the stuf available in SE anyway (it's not like you'll be working with JavaBeans anytime soon).
But definitely move to C++ (and assembly, if you're keen) as it really get you into the nitty gritty bits of programming. And by doing this, you'll be aware of such issues when working with higher level languages (it will make you a better programmer all round). I'd say that after taking a semester subject in assembly, computer architecture and organisaiton, I have become 1000x better at programming.