On a modern system (with full-out Unicode support), this shouldn't be a problem - with emphasis on "shouldn't". As quoted in that answer,
The default is NAME_REGEX="^[a-z][-a-z0-9]*\$"
Although this may be overly strict for current systems, it makes for easier administration - as in, "one less thing to worry about". Note that the username gets used in many places - e.g. your home directory would probably be of the form /home/username; most sane filesystems have full Unicode support, but as with anything computer-related, sanity under all circumstances is not guaranteed.
Note that there is the actual login name as used by the system (which falls under these rules), mapped to an UID in /etc/passwd, and there's "Full Name", which is a string (and most valid characters can be entered, although there's a "non-ASCII" warning).
What to do: Where applicable, I use the name without diacritics (or romanized, in case of non-Latin scripts) for username, and the real form for Full Name. The entry in your /etc/passwd might then look similar to this:
martrang:x:1001:1001:Märt Rang,,,:/home/martrang:/bin/bash