The zOrder is a bit hell time to time. You said that the canvas use the translation to display inner nodes and edges.
But this implies an order when rendering the nodes. The parent has to be rendered before its children. But with the zOrder, this order may not be preserved. Therefore, I think we have to deal with absolute bounds all the way.