Starmaker: That's just a regular bug that has nothing to do with unicode. They didn't have to demand X=canonical(X), they had to check existence of canonical(X) when registering a user, aka not be fucking idiots.
onarliog: You are entirely ignoring the problem of homoglyphs there.
Er what? The problem in the linked article was that one could register a unique unicode username, have that converted to a less rich (canonical) form and grab an existing account which had the same canonical form. This is a problem regardless of what the canonical function is and what the alphabet is.
For example, the software I'm using right now allows English letters (uppercase and lowercase) and numbers for display names, then makes everything lowercase and inserts underscores if it detects camelcase. So, e.g., StarMaker and star_maker are displayed differently but would have had identical canonical representation, and this is why, if I registered one and tried to register the other
it would not have let me because it'd have seen that a record with the same canonical form already exists and throw a (duh) "username already exists" alert.
Also, the default font displays lowercase L and uppercase i the same way,
and it doesn't matter because the problem in the linked article -- not the one dtgreene posed -- has nothing to do with human confusion / error / deception, nothing to do with visuals, indeed, and everything with shitty code.