hoje o bash já entende
Não é exatamente o Bash, cada comando lê as opções e as interpreta da forma que quiser. O que acontece é que muitos usam alguma biblioteca padrão (seja POSIX ou extensões da GNU, por exemplo), que possui funções prontas para interpretá-los da forma que expliquei. Se não me engano, são as extensões da GNU que adicionaram o suporte à forma longa.
Mas nada impede que eu faça um programa que aceita opções em um formato completamente diferente.