[I will use the terms cw & ccw for clock-wise & counter-clock-wise]
Short answer: no, there is no simple way to specify cw or ccw for an edge. And note that this concept has little or no meaning for a edge that wanders all around a graph.
Long answer: yes, it can be done (see below), but it require DIY edge routing. Here is a gvpr program that does what you ask. You could also write an equivalent in python, C, or other languages that talk Graphviz.
To get the image below:
added these attributes edgeType=curved edgeDirection=cw edgeOffset=22 to the last edge
used this pipeline f=peace2.gv; T=png;F=${f%.*};dot $f |gvpr -cf alterSimpleEdge.gvpr | neato -n2 -T$T >$F.$T
It looks like to run that in WASM, gvpr needs to be compiled to WASM (as part of hpcc?), then use something like alterSimpleEdge.gvpr.
It’ll probably sit on the back burner for a while, since it’s at the level of “make it aestheticcally pleasing”, and I haven’t even gotten my main project hooked into this.
Also, having two lines, no ports, and increasing nodesep seems to achieve something good enough.