Olá, Felipe.
Tudo bem?
Você está correto em dizer que sem os labels, o service não irá direcionar as requisições para nenhum pod específico, tornando-o, de certa forma, inútil. No entanto, a questão da atividade está focada na correção do arquivo YAML em si, e não em sua funcionalidade prática.
Dito isso, a alternativa B não está correta porque, do ponto de vista estrutural do arquivo YAML, não é obrigatório definir labels dentro do metadata do service. O Kubernetes não retornará um erro se você não definir labels. Portanto, o arquivo YAML, como está, é válido e pode ser criado sem erros, o que faz a alternativa C ser a correta.
Porém, você está absolutamente certo em seu raciocínio prático. Sem os labels para direcionar as requisições a um pod específico, o service não terá muita utilidade. Isso é um exemplo perfeito de como a teoria e a prática podem divergir em alguns casos.
Espero ter ajudado e bons estudos!