I pretty much lifted the lob hack from your driver code verbatim. For a first cut I implemented it in 'c', and I run the code/decode routines using piped input/output streams. Yesterday I cam across a reference for a uu_enocde/decode class which was implemented in java using a table lookup method, but source code was only available for a fee. I looked at the algorithm that you're using, and I think it can be converted to use a table lookup method that relies on several small tables to generate the coding/decoding. This method would probably give acceptable conversion speeds even in java.
Of course if we do use JNI, then I can keep the 'c' routines and call them directly. I've pretty much isolated all of this lob stuff in a single class, so it should be easy to rip it out once pg supports true large objects.