I've just come across your nice post.
Thank you to share your experience. I wanted to add some things that could be important.
First, if you are doing the caching of connections, be sure to cache the ODServer object, and NOT all the sub classes (like ODFolder, etc...). Because of how ODWEK Java API is created, and its use of JNI (C/C++ native libraries) if you don't do the caching on the ODServer object, you can have lots of problems on complex setup.
Second, from an IBM perspective, the only way ODWEK application is officially supported is to have ODWEK installed on your tomcat server. To package ODApi.jar in your war/ear/... is NOT officially supported, even if you package the native libraries and the codepage files and other stuff...
Cheers