Encountered this problem, looking at the 3.3.0.GA source:
Subprocess instance is created in ProcessState:
ProcessInstance subProcessInstance = superProcessToken.createSubProcessInstance(usedSubProcessDefinition);
At this point of time, the process-start event is fired in the subprocess instance.
And only later, variables are populated from parent process, and token signaled.
Not sure, if you consider this as a flaw, but I personally think, that any event, action or other activity, that happens in process instance, should be worth-full.
In this case, only process-start event in the _subprocess_ instance is exceptional - can't see parent version variables.