The idea being that you have a process variable which once created, you can pass its UID to another task or process and they can load it from the BPM DB and read the latest state of the business object.
You pass the UID of the object between a process and a service. In general, BOs are passed by value which is not recommended for bigger objects. Here, we can workaround this rule and pass the reference, single string (the UID of the BO) and then load it in the service when needed. This is particularly useful for human services, which can take the latest state of the variable instead of getting the state at the time of assignment of the task.
parallel tasks, loop and any other multitasking functionality that needs to know about the result from another task. Suppose that one approver would like to see the result of anothers approver if they approved the second task before they did.
This approach has better alternatives in services caching and Dynacache solutions. On the other hand, it is easier to implement than Dynacache and more powerful than service cache.