You can specify the classloader that needs to be used. Would that solve your issue?
KnowledgeBuilderConfiguration config = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(properties, classloaders);
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(config);
... // add processes here
But this defines classloader when I start the process engine. Am I correct? So I would need to create own classloader that reads process information and finds required versions of classes. In JBPM4.4 I just deploy jpdl file that has process xml and classes inside and then the process engine uses classes from right process version.
This is still better that nothing, if there is a way how the classloader can find which version of class it should use.