the new repository service manages a set of deployments. you can create new deployments with the repository service and deploy those.
long deploymentDbid = repositoryService.createDeployment() .addResourceFromClasspath("org/jbpm/examples/services/process.jpdl.xml") .deploy();
I think this is a valid concept.
But I assume the default createNewProcessInstance() still looks for the latest deployment of the process definition (as it was in 3) + it checks the undeployed flag?