@Erica, Iām glad youāre thinking in-depth about this implementation. I think thereāre lots of ways to explode this feature to make it more complicated, such as allowing some preference to control display, allowing user to rename tags for custom display and storing that, etc.
But from looking at my (rather large) list of real tags, I would be 100% fine with them being all lowercase. None are longer than a few words, and this would not lose their readability. The huge win would be combining dupe ones. I obviously donāt know about othersā data.
If you do go with the ā1st usage sets displayā approach, clicking the tag already shows you its instances (well, kind of), so a user would see right away where the top hit came from.
Another easy approach I can think of is a hover tooltip over the tag that shows found variations. This is more informative without a lot of new UI. You could do this both for lowercase and 1st use approach. E.g., I hover over #codecoverage and it shows me that it found #CodeCoverage, #codeCoverage. These could even have their own sub-counts, so the user could decide which one should āwinā if they do manual cleanup (though I wouldnāt care about this).