Execution creation - why there is new execution created

we are evaluating Activiti as engine for next project developed in our company. I'm new, so my question may be a little bit silly. I don't understand what are the rules of execution creation?

On attached image I show part of my BPMN process. Execution ids are given for each serviceTask. First question: why modifyParty block is executed in separate execution? For me it causes variables scopes problem - result of this serviceTask must be saved in execution local scope. Because new execution is created - result is lost.

Secondly: after modifyParty block I start subProcess for processing each item in contracts collection (in multi instance way). Same question as earlier - why transferService block is executed in new execution instance and not within same as "Set contract to PROCESSING" and "Set contract to WAITING". Following message-catch event also created new execution.

That service task has a boundary event: the execution is created to denote the scope for the event.It doesn't make sens you have to use setVariableLocal, regular setVariable should work. Do you have a unit test demonstrating this wioth this process?

Same answer for your second question: that is to denote the scope of where something is applicable.