O principal com o qual eu vi problemas recentemente foi o ps no Solaris (10); ele retira os caracteres 9º +, por exemplo, se você precisar grep pelo nome de usuário, ele não corresponderá.
$ sudo -u longusername ps -fu longusername
UID PID PPID C STIME TTY TIME CMD
longuser 14012 11985 0 09:58:39 pts/2 0:00 ps -fu longusername
Se você fizer um ls -l em um diretório com arquivos pertencentes a esse usuário, as colunas serão empurradas para fora do alinhamento.
$ ls -ld /export/home/l*
drwxr-xr-x 2 lauser users 6 Mar 23 10:21 /export/home/lzuser
drwxr-xr-x 2 longusername users 6 May 4 10:02 /export/home/longusername
drwxr-xr-x 2 lzuser users 6 Mar 12 11:21 /export/home/lzuser
Basicamente, você precisa ter cuidado com qualquer ferramenta que lide com nomes de login e não apenas com UIDs. Isso pode incluir coisas que são lidas ou gravadas em arquivos ou bancos de dados de log, ou usadas a saída de ferramentas como last, who, finger, ls, ps etc.
Um rápido Google apareceu nesta página:
http://fixunix.com/sun/113647-username-lenght-more-then-8-characters.html
O que acrescenta mais alguns motivos.
Com relação às práticas recomendadas para criação de nome de usuário, também pode haver complicações com o uso de logons em maiúsculas em vez de minúsculas, portanto, isso também deve ser evitado.
Quando alguns sistemas (mais antigos), quando veem um logon apenas em maiúsculas, ajudam a assumir que o terminal do usuário não suporta letras minúsculas, então configure TUDO para maiúsculas (o que pode impedir a digitação da senha e a digitação) Comandos Unix após o login!)
Editar (16/04/2019):
Acabei de notar no RHEL 7.5, que a saída do ps também não funciona muito bem:
$ ps -fulongusername
UID PID PPID C STIME TTY TIME CMD
longuse+ 1230 27243 0 Apr13 pts/0 00:00:00 vim somescript.sh
longuse+ 1701 27243 0 Apr05 pts/0 00:00:00 vim another-script.sh
longuse+ 3116 27243 0 Apr12 pts/0 00:00:01 vim test_script.sh
Ele trunca o nome de usuário com um '+', o que não é útil se você não estiver familiarizado com qual usuário ele será e significa que você não pode confiar na saída do ps, por exemplo, como entrada para um script que precisa saber quem possui um processo.