We understand your requirements. One is to control the order of the independent graph components in the Diagram. Currently this is not supported, the diagram arranges the components based on their width decreasingly - that is why the wider component in your scenario is on the left of the smaller one. You can vote for this related feature request
for customizing the layout of the diagram. This way you will increase its development priority.
The other layout with misplaced shapes is produced because the tree layout in the diagram does not support cycles (level1 - level2_1 - level2_2 - level3_1_1 is a cycle). You can subscribe for DiagramLayoutComplete
event and manually position the shapes by setting their Position property. Once a layout is ok for you, you can consider saving it and then loading it in future application runs. You can also consider writing your own Layout algorithm from scratch.
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.