I have a few thoughts to bridge what James said: could we create two tabs on the current City list that appears on the strider Profile page that mirrors the “Complete/Incomplete” listing of streets on a city or activity page? That way one can easily see what cities are 100%ed. Since by definition the tab would have only completed cities, instead of saying “100% of X streets” below the purple bar, perhaps it could say “X Streets, completed on [date]” where [date] = date of activity that completed the last street. Could even go crazy and have that date link to the activity that polished off the last road[s].
It’s not a badge but it is a trophy case of sorts!
With subsequent OSM updates new streets could be added that no one has yet run, so completion badges for 1st/2nd/3rd really will be in flux and people could get upset if they are re-ranked, as we’ve seen with the at times semi-contentious debates on what is or isn’t a street. But if the 100%ers for a given city are ranked (& re-ranked) by date completed, it’s not like their gold medal is stripped from them or something, it’s just a fact of when the activity was that completed the city.
Finally, a plug for my (so far) less popular ideas that bear some overlap with this: More Striders list metrics
Edit: oh and one more thing, having separate tabs of completed and incomplete cities on the Profile page will make it more practical/easier to use - a lot of the “cities” I’m currently working on are on the second page or later of my Profile page Cities list.