Hi Mark,
the last description of your application plans is a lot more generally usable than the first one.
If you separate the domain model completely from the graphical representation you would be free to draw a diagram with any visual technology you like. The good thing is that the entity and relation classes wouldn't have to know anything about the user interface.
On the other hand I should mention that this may complicate the application design, too. You would have distinct application part to model the diagram with all the relationships etc. and another part to draw a diagram. Depending on the situation this may be worth the overhead.
There's basically nothing wrong with both approaches. This is probably not the answer you like to hear, but unfortunately when it comes to software design there's rarely anything just black or just white. A lot of things depend on your current or future requirements, the environment where your application should run, maybe the audience to use the application and a lot more.
What I mainly wanted to tell you with my advice above is, that I don't think it's a good idea to treat a line as a rectangle just because a rectangle is one way to draw thick lines. But besides that fact I don't think your first approach where every shape has the ability to draw itself is too bad
Marco