Here's how this works. Inline::Java creates a ClassLoader that is used to load the user's code. The idea here was to create "private" workspaces in order to prevent interaction between different user's code (in SHARED_JVM mode) or between the user's code and the Inline::Java core code.
When you use the CLASSPATH environment variable, you set the CLASSPATH for the default Java ClassLoader. If you use the CLASSPATH option, you set the CLASSPATH for the user ClassLoader. For some reason, some code doesn't work well unless it's loaded by the default ClassLoader (unfortunately I'm not proficient enough with respect to ClassLoaders to understand why).
Note: If possible, I would appreciate if you would send any further questions regarding Inline::Java to the Inline mailing linst (firstname.lastname@example.org) instead of to this forum. I'm not a big fan of CPAN::Forum and I don't think a lot of Inline::Java users read it.