BPMN allows the sequence flow to loop back to a previous step if an exception is encountered.

In the example below, the process designer might have considered that it was unrealistic simply to end the process if Purchasing was unable to find a supplier able to meet the Originator's specification. A more realistic approach would be for Purchasing to go back to the Originator to discuss an alternative specification. No doubt Purchasing will have received feedback from potential suppliers, so will be in a better position to help the Originator refine their requirements.

Infinite Loops?

Of course, using this approach, there is always the danger of ending up in an 'infinite loop' with the process never reaching an end point. This rarely happens in manual processes as humans usually intervene with an alternative solution. It could happen, though, if the process was automated. In this case, it would be pertinent to build in a counter or timer to tell the process when to stop looping.

Sequence Flow

BPMN does not ascribe any significance to whether sequence flow enters an activity from the left, right, top or bottom. Nor does it specifically require lanes to run horizontally. What is important is the user can follow the sequence easily.