Thank you very much for the sample data. I have added a corresponding ticket in our internal issue tracking system. I cannot promise when or even if we will be able to improve on this issue, though.
That said, I agree that the crossing should not occur for the small test case. However, the algorithm does not guarantee an optimal result in the general case. Determining the optimal solution to the "edge crossing" problem is a computationally hard problem, i.e. this is a well-known problem in the field of computer science for which no efficient solution exists. For this reason, the family tree layout uses an heuristic that may produce unnecessary crossings, but completes in an acceptable amount of time.
On a slightly unrelated note, for future questions please do not create a separate topic when uploading files but edit the original post or add an answer to the original post instead.