Possible issue in ProcessBuilder

I want to create a simple BpmnModelInstance with two sequential Service tasks:

BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(PROCESS_ID)
        .startEvent()
        .serviceTask("task1")
        .camundaDelegateExpression("dummy")
        .serviceTask("task2")
        .camundaDelegateExpression("dummy")
        .endEvent()
        .done();

But this code causes following runtime error on second service task creation:

Cannot create reference to model element org.camunda.bpm.model.bpmn.impl.instance.ServiceTaskImpl@7f29adac: element is not part of model. Please connect element to the model first.
org.camunda.bpm.model.xml.ModelReferenceException: Cannot create reference to model element org.camunda.bpm.model.bpmn.impl.instance.ServiceTaskImpl@7f29adac: element is not part of model. Please connect element to the model first.
    at org.camunda.bpm.model.xml.impl.type.reference.ReferenceImpl.setReferenceTargetElement(ReferenceImpl.java:88)
    at org.camunda.bpm.model.bpmn.impl.instance.SequenceFlowImpl.setSource(SequenceFlowImpl.java:94)
    at org.camunda.bpm.model.bpmn.builder.AbstractSequenceFlowBuilder.from(AbstractSequenceFlowBuilder.java:40)
    at org.camunda.bpm.model.bpmn.builder.AbstractFlowNodeBuilder.connectTargetWithSequenceFlow(AbstractFlowNodeBuilder.java:82)
    at org.camunda.bpm.model.bpmn.builder.AbstractFlowNodeBuilder.connectTarget(AbstractFlowNodeBuilder.java:77)
    at org.camunda.bpm.model.bpmn.builder.AbstractFlowNodeBuilder.createTarget(AbstractFlowNodeBuilder.java:122)
    at org.camunda.bpm.model.bpmn.builder.AbstractFlowNodeBuilder.createTargetBuilder(AbstractFlowNodeBuilder.java:133)
    at org.camunda.bpm.model.bpmn.builder.AbstractFlowNodeBuilder.serviceTask(AbstractFlowNodeBuilder.java:149)

Similar code for User Task works correctly:

BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(PROCESS_ID)
        .startEvent()
        .userTask("task1")
        .userTask("task2")
        .endEvent()
        .done();

Is this an expected behavior or I missed somethig?

Ok, adding connectTo("start") fixes problem:

BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(PROCESS_ID)
    .startEvent("start")
    .serviceTask("task1")
    .camundaDelegateExpression("${dummy}")
    .connectTo("start") // this guy should be here
    .serviceTask("task2")
    .camundaDelegateExpression("${dummy}")
    .endEvent()
    .done();

But this still does not answer why original code works with User Task and fails with Service Task.