As the OP says, "Java would be slower," This is not necessarily true. It would be faster than the Python bindings. However, the C++ code would still be fastest. The reason why I (and many others) prefer to use OpenCV with C or Python is because:
-c/c++
--fast, stable, robust, OpenCV written in C/C++, easy, well-documented
-python
--easy to program, and easy to put together a program quickly and with little notice. You don't need to go around, compiling the program every time you change very little code
-Java
--It's really just for the sake of it. Java is good, but is so similar to C, that you'd probably be better off learning the better-documented C/C++ API instead of the Java one. However, it is personal preference. You are going to use similar commands, so C might just be easier to use. Also, with so many C compilers out, it is actually much more portable than Java which has a JVM for most, but not all systems. Java is really only nice if you are programming for Android, where you need maximum portability without the need to recompile the code every time it is downloaded!
I am actually thinking about starting an OpenCV journal, that explains what I have done, and what not to do, to not shoot yourself in the foot! Beware! It will be long
By the way, today, I was working on setting up the Kinect for OpenCV, which I will make a thread about in a few minutes.