O raciocínio por trás da primeira afirmação é falso. Essa é uma restrição da era do DOS, bem antes do PHP ou até mesmo do HTTP. Veja a entrada da Wikipedia :
O sistema de nome de arquivo longo permite um tamanho máximo de 255 caracteres UCS-2 3 4 incluindo espaços e caracteres não alfanuméricos (excluindo os seguintes caracteres, que possuem um significado especial no interpretador de comandos COMMAND.COM ou no kernel do sistema operacional:
\ / : * ? " < > |
).
Assim, é mais uma restrição do DOS do que uma permissividade do Linux / Unix.