A while ago I thought about automatic conversion too, but I discarded the idea because exactly what DeepSOIC shows in his screenshot. There is no way to my knowledge for the solver or the sketcher code to know whether the user intends the tangency at the endpoint or not, unless and endpoint-to-endpoint tangency is used.
Solutions can go into the following directions:
a) Change the solver edge tangency constraint to another expression that does not show the behaviour, if such alternative expression exists => (probability of happening under 1/1000).
b1) Every time a redundant constraint happens and there are edge tangencies with endpoints, annoy the user with a pop-up with an hypothesis of why this may be happening that is not always accurate. Potentially, the pop up can have a button "stop annoying me, I already learned the lesson" (Probability of happening under 1/1000).
b2) Alternatively make the tangency button disabled until the user reads the documentation of tangency, with three confirmation "ok" buttons one after the other and making sure the user read the whole by scrolling no more than 1 line every 30 seconds and requiring to scroll until the end of the explanation (commercial software license style). (Probability of happening: zero, but it was fun thinking about it
c) Educate the user somehow (forum, documentation, tutorials, linking a help webpage about redundant constraints directly in the solver messages,...) (Probability of happening => it is happening!! Everyday tens of satisfied new users learn the lesson thanks to the forum and the documentation. Let's be honest, mostly the forum. I guess some of the regular educators there already have a written paragraph stored in the computer for this one).
Now seriously, I think we cannot close the ticket because we do have a bug (unless we close with "won't fix", which I really do not like). It is the kind of ticket that is waiting for an inspired smart guy (TM), along with all the other solver tickets that create trouble.