It's a tradeoff.  There's less nesting but then you have to jump around the file to see what's a child of what.  

Ideally this would not be a tree at all, but a graph, represented as a list of nodes and list of edges.  The problem with that is, it gives you no idea what the structure actually looks like.

I've had this issue come up before in other areas where the structure is really a graph, but the convenience of being able to see the structure in a simple text file overrode the need for that extra flexibility in the model.

However I've kind of begun to reverse myself on that, because I saw how easy it is to just format the graph data in way that eg [graphviz](http://www.graphviz.org/) can understand. So you can just view the graph anytime with very little effort.  There's libs in many languages that output graphviz, eg [pygraphviz](https://pypi.python.org/pypi/pygraphviz).

TL;DR - if we're not going to lay out the structure in an easily readable tree, I think we should just go full bore and make it a list of nodes and edges and use graphviz to view the structure.