Showing the tag synonym mechanism in some form is a must I think. One of the synonyms that is setup is
[mssql] renamed to the master
[sql-server] tag. Picture the scenario from the perspective of a new learner who refers to it as mssql and tries to create a question. Without any tag synonym support built-in, they're going to type mssql in the tag input and not getting anything back. If that happened to me I'd be rather confused. No questions about mssql on the site?? Could that turn a user away from asking a question? Potentially.
I do agree with you that the current implementation may not be the most user-friendly. For
[linq-to-objects] the most user-friendly option would be to only show
[linq-to-objects] in the list. For
[sql-server], I think the most user-friendly implementation would be to display
I do acknowledge that things would get tricky, because what happens if both
[ms-sql] point to
[sql-server] and I type in
ms? Ideally there would just be
[sql-server (mssql)] or
[sql-server (ms-sql)] though with the hypen or without wouldn't matter. This situation could be avoided by actually deleting some tags rather than creating multiple synonyms. If
[ms-sql] points users to
[sql-server], is there a point in keeping
[mssql] around? If the tag is deleted, would it get recreated by someone with rep?
The logic would certainly not be the simplest with the introduction of the display string versus the value string, but from the user's perspective, I do think it would be the most user-friendly.