Process Instance Modification Behavior for End Activity

Hi All,
I have notice one strange behavior for Process Instance Modification API.

runtimeService.createProcessInstanceModification(processInstanceId)
.startBeforeActivity(serviceTaskActivityId)
.cancelAllForActivity(endActivityId)
.setAnnotation(reason)// Reason
.execute();
So when we are using process instance modification API to move to End Activity, Instance state is change to terminate.
Is there any way to change this behavior?
and Is this a correct behavior?

Thanks