Dave,
I've patched a copy of dia with your new line and flowchart box.
Your method of labelling ports certainly looks nicer than mine and I think that you are right that the ports need to move with the component, however I don't think that just attaching a text label to the same anchor provides sufficient definiteness about the associativity. With 25 ports on a smallish component, I don't think that it would be possible for the user to be certain about which bonds were coincident with which ports. This method would also require that every port connect to a unique handle which would rule out the idea of connecting every port to a central handle and would require the user to edit the box definition to increase the number of handles to embed very large models. It would also be very easy for the user to disturb a port label without realising that it was no longer attached.
The bond definitely needs to connect to the component *through* the port, else we have not really gained much over the proximity algorithm used to interpret Xfig drawings. Probably the best way of achieving this would some kind of compound textbox/line object which connects to a line as if it were a textbox and connects to a textbox as if it were a line:
Normal connection in dia:
line --> component
Additional connection option:
line --> port --> component
where the arrows indicate that the object anchors are coincident. The port could then move with the component in the same way that a line normally would, and the line could follow the port in the same way that it would normally follow a component.
Unfortunately, I have absolutely know how feasible this would be to create in dia.
Does that make sense, and if so, what do you think?
/Geraint.