Para especular sobre a aparência dos elfos, devemos investigar além das três raças apresentadas no Silmarillion: Vanyar, Noldor e Lindar. Essas raças já são combinação dos grupos primordiais Minyar, Tatyar e Nelyar.
Os Minyar tinham cabelos dourados. Os Tatyar tinham cabelos negros e polidos como o azeviche. Os Nelyar tinham cabelos prateados.
Todos os Vanyar tinham cabelos dourados, pois todos os Minyar aceitaram a liderança de Ingwë e fizeram a grande viagem até Valinor.
Todos os Noldor tinham cabelos pretos, pois correspondiam a aproximadamente metade dos Tatyar.
Todos os Lindar tinham cabelos prateados, pois eram aproximadamente dois terços dos Nelyar.
Há, porém, outros grupos, compostos por fragmentação e miscigenação dos ramos principais.
Os Avari eram um grupo caracterizado pela opção de não atender ao chamado dos Valar, e não por características físicas. Cerca de metade dos Tatyar e um terço dos Nelyar fizeram a opção por ficar no leste, longe da luz. Nenhum Minyar tomou essa opção. Por isso não há Avari de cabelos dourados.
Os Sindar (os Nandor de Lenwë; os Laegrin ou elfos verdes; os Eglath de Elwë; os Falatrhrin de Cirdan) e os Falmari (de Olwë), todos tinha cabelos prateados, pois eram Lindar.
Os Elfos Silvestres eram uma miscigenação entre os Avari e os Nandor. Portanto poderiam ter cabelos prateados ou negros.
Até aqui, tudo é simples. As complicações e aparentes inconsistências começam quando se lê que Glorfindel, Idril, Eärendil, Celegorm, Thranduil e Legolas eram loiros. Algumas dessas perplexidades tem solução mais fácil, outras mais difíceis... Mas é possível encontrar uma explicação para cada caso.
Em primeiro lugar, Elenwë (esposa de Turgon, mãe de Idril) e Glorfindel poderiam ser Vanyar misturados aos Noldor exilados, por relações de casamento ou amizade. Isso explicaria também os cabelos loiros de Idril e Earëndil. É a tese de Michael Martinez e me parece bastante razoável, afinal os Noldor e os Vanyar viveram juntos em Tirion durante algum tempo.
A questão quanto a Celgorm, na verdade é falsa. Ele não era loiro. O que ocorreu é um erro de tradução. Celegorm the fair foi traduzido como Celegorm o loiro, quando o termo fair pode significar (além de loiro) bonito, belo, leal, justo, reto, honrado e moderado (p. ex. fair play).
Aliás, é o mesmo erro cometido com Beorn. A versão brasileira de O Hobbit passa a impressão de que Beorn é negro, quando na verdade apenas os seus cabelos são (black-haired). A tradução brasileira de O Silmarillion incorreu nessa falha (na verdade ao contrário) ao traduzir fair como loiro, quando somente fair-haired significaria isso com clareza. Havendo outras opções e em se tratando de um noldo, obviamente fair=loiro não foi uma tradução adequada.
Já quanto a Thranduil e Legolas a questão fica realmente difícil, mas não é insolúvel. Em O Hobbit, o rei dos elfos da floresta (Thranduil) é descrito como tendo cabelos dourados. Isso não é erro de tradução. Mas Oropher, avô de Legolas era um sinda de Doriath, que certamente deveria ter cabelos prateados. A única saída é se agarrar à possibilidade de a mãe de Thranduil ter, de alguma forma, sangue vanyarin.
Essa possibilidade existe. Oropher era um nobre de Doriath e embora o reino oculto fosse vedado a todos os Noldor, abria-se exceção à Casa Dourada de Finarfin, justamente a única família nobre dos Noldor que trouxe algum sangue vanyarin de volta à Terra-média.
Pouco se sabe a respeito da prole dos filhos de Finarfin na Terra-média, especialmente sobre as mulheres. À exeção de Celebrían (filha de Galadriel) e Finduilas (Filha de Orodreth), Tolkien não escreveu nada sobre outras donzelas dessa família. Isso não é razão para afastar a possibilidade de que Oropher tenha se casado com uma filha de Finrod, Angrod, Aegnor ou Orodreth.
Galadriel teve apenas uma filha (se desconsiderarmos a versão segundo a qual ela seria mãe de Amroth). Ao que tudo indica, Finrod Felagund morreu solteiro. Mas não se sabe se Angrod e Aegnor se casaram, pois sobre eles muito pouco se fala. Já Orodreth casou-se e teve pelo menos uma filha: Finduilas. Ela, no entanto, não poderia ter desposado Oropher, pois vivia com o coração dividido entre Turin e Gwindor e morreu solteira.
Mas nada impede que Oropher tenha se casado com outra filha de Orodreth ou com alguma filha de Finrod, Angrod ou Aegnor, de modo a justificar o sangue vanyarin de Thranduil e Legolas.
Não se sustenta o argumento de que Thranduil seria conhecido como Noldo ou Vanya se tivesse sangue noldorin e vanyarin além de sindarin, pois Galadriel tinha sangue das três raças élficas e ficou conhecida como Noldo, pois essa era a raça de seu pai (Finarfin). Como Oropher era sindar, Thranduil e Legolas foram sempre tratados como pertencentes a essa raça.
De tudo o exposto, de acordo com o que entendo, é perfeitamente possível sustentar com rigidez a tese de que os elfos podiam ser diferenciados pela cor dos cabelos. Vanyar: dourados; Noldor: negros; Lindar: prateados. As chamadas exceções à regra podem ser justificadas sem violar os parâmetros delimitados por Tolkien, desde que se faça uma análise mais aprofundada dos textos.