Esta é uma pergunta antiga, mas a resposta atual não explica realmente para que você as usaria.
É tudo sobre economia de espaço. E com atributos de vértice, menos espaço pode significar maior desempenho (se você estiver vinculado à transferência de vértices).
As cores normalmente não precisam de muito mais do que 8 bits por componente. Às vezes você precisa de 16 bits, se for um valor de luz HDR ou algo assim. Mas para as características da superfície (que é o que a maioria dos atributos de vértice são), 8 bits é bom. Portanto, os bytes normalizados não assinados são um bom formato de vértice.
As coordenadas de textura não precisam de precisão de 32 bits de ponto flutuante. Um valor de 16 bits de [0, 1] é suficiente. Portanto, os shorts não assinados normalizados são um formato de vértice razoável.
Os normais nunca precisam de 32 bits de precisão. São instruções. Os bytes normalizados assinados de 8 bits tendem a ser um pouco pequenos, mas os valores normalizados de 10 bits são bons o suficiente na maioria das vezes. O OpenGL (3.3+) ainda permite que você use normais de 10 bits por meio de um formato compactado de 10/10/10/2 bits, armazenado em um único inteiro não assinado de 32 bits.
Você pode até jogar com posições de vértice, se precisar de mais memória.
Sem normalização, você teria que desperdiçar ciclos preciosos no seu sombreador, dividindo os atributos de byte por 255,0. Por que fazer isso, quando o hardware pode fazer isso de graça?