PlantUML アクティビティ図で描画する業務フローは、差戻しの処理を前のレーンで描画するケース
repeat の backward を前のレーンで書くと
@startuml |A| start :新規作成; |B| repeat |A| backward :修正; |B| repeat while (検証?) is (差戻し) :登録; end @enduml
これは repeat while (検証?) の箇所に線が被ってしまう。

それなら、最初のレーンで if 文を使って表現する方法
@startuml |A| start repeat if (未作成?) then (yes) :新規作成; else (no) :修正; endif |B| repeat while (検証?) is (差戻し) ->OK; :登録; end @enduml

実際のコーディングでは if 制御文が入らないであろうから
正確かどうかでいうとこの方法が見送られることもあろう。
while 文で表現する方法、こちらの方が実際のコーディングに近いのであるが。
@startuml |A| start :新規作成; |B| while (検証) is (差戻し) |A| :修正; |B| endwhile(OK) :登録; end @enduml

戻りループの線が、レーンの線と重なってしまうとこの書き方は使えない。
最初に戻って、repeat の backward を前のレーンで書かずに、
逆にすれば、( Aレーンの先にBレーンの存在を記述する)
|B| の後に |A|
@startuml |B| |A| start :新規作成; |B| repeat |A| backward :修正; |B| repeat while (検証?) is (差戻し) :登録; end @enduml

でも、業務フローのレーンの左右、左側から開始しなければならないという
厳格なルールにするならこれは適合しない。