To my surprise, this is AFAICS indeed the current behaviour of the engine. So if you want this changed you can report a change request in JIRA. Make sure you refer to this thread. Maybe this should be a configurable option:
--> always last version
--> always current version
--> always some specific anterior version
I feel neglected :-)
I think that, if you can map it in hibernate, it will be fairly easy. You have to tell hibernate to always fetch the latest version (this may be difficult, but you could have a "latest version" mapping, based on a (name,process definition) pair which maps to latest the process definition).
Otherwise, the ProcessState node will have to have a reference to the GraphSession for looking up the latest definition, which may be not desired for the nodes (having a session, that is).