Hi @gabriel.schugut
I have been thinking on this for a while now, always making some progress per project. My solution is however implemented on 2D projections, and fast and automated, as it needs to be computed for hundreds of drawings in a way that reguires minimal manual touch-ups.
Current implementation on 2D looks like this. Grouping of base points per vicinity, and creating a fan of leaders. Works 99% of the time, without intersections.
Looking at your example, the first thing that caughts my eye is the even distribution of labels along the perimeter box.
I think the process would entail projecting arrow end point to the perimeter (maybe closestPt), and then distributing/clustering to the divided border. After that it starts to get interesting, and more complex - how to group points, prohibit lines intersecting, etc… In the end it might be a “simple” list distribution exercise, where a list of info is distributed along the perimeter…

