An afternoon is 4 hours. Imagine how many other issues can be solved in an afternoon? Also, I think you’re grossly underestimating how many testing is required to properly implement it.
Perhaps, but from a software engineering standpoint it’s better to whitelist than to blacklist. In other words, it’s better to define what characters are allowed than what characters are not allowed.
Consequentially, the developers would have to manually add every non-alphanumeric character that users would desire in their user name. For every character, one or more tests would have to be written to ensure nothing is broken by supporting that character. Then some user starts complaining why it’s possible to use a apostrophe, but not a backtick (`). Wouldn’t be fair if it weren’t included, would it? Cue additional development and testing hours.
I wouldn’t be surprised if a lot of users in the target audience (which is, I guess, regular consumers), don’t look at their screens when they type, so they wouldn’t notice. Also, most users type a few characters to narrow down the list. If a user has a non-alphanumeric character in the first few characters of his, that would make it difficult.