Tem toda a razão, prezado consulente! O plural de couve-flor é a prova de que em matéria de composição de palavras e respectiva flexão estamos em terreno relativamente pantanoso, ou seja, para cada regra definida encontramos, sem grande esforço, uma excepção.
A palavra couve-flor é, efectivamente, composta por dois nomes em que o segundo restringe ou determina o primeiro. E as regras dizem que, em casos como este, apenas o primeiro nome adquire plural. Seria, pois, lógico que se escrevesse couves-flor.
A única coisa que podemos fazer, porque de nada serve questionar o inquestionável – uma vez que quem faz as regras de uma língua são os seus falantes – é tentar compreender a razão que poderá justificar a fuga à norma que aqui se verifica. Abrindo um dicionário na palavra couve, é possível ver, a seguir, um conjunto considerável de palavras compostas a partir dela. Se repararmos um pouco mais, veremos que, na maior parte dos casos, essas palavras são constituídas por um nome (couve) e um adjectivo: couve-portuguesa; couve-lombarda; couve-francesa, etc. A par destas surgem algumas, poucas, formadas por dois nomes, como couve-flor ou couve-nabiça, que fazem, ambas, plural nos dois termos. A única explicação que eu posso dar-lhe, e que não tem qualquer valor científico, é a de que o plural couves-flores ou couves-nabiças surge por analogia com os restantes plurais dos compostos com a palavra couve, tendo-se, eventualmente, sobreposto a frequência de um dado plural à regra.
Para além disto, posso apenas repetir-lhe um conselho que me tem sido útil: em caso de dúvida, consulte um dicionário.
N.E. O autor escreve segundo a Norma de 1945.