The problem with the use of labels is that each cardinality looks a little bit different. Different position and so on...
The other problem is when you move an edge, you would need to build groups so that textboxes did not lose the position relatively to the edge.
In my opinion, you could extend your features by connecting more than one textbox to an edge (or something similar).
When you now add text to an edge, you only have one possibility to describe it. Maybe you can add a function that can handle more than lable per edge. So you can adjust the position for every textbox separately and when you move the edge the textboxes would also adjust...
Hope you get my idea...
Best regards
ICE