Respuesta correcta A y B:
A: La variable debería ser inicializada dentro del selector .header y no dentro de :root.
No necesariamente. Inicializar la variable en :root garantiza que pueda aplicarse en todo el proyecto, el llamado "ámbito global". Inicializarla dentro de .cabecalho permitirá que se use solo en el encabezado. Sin embargo, esto no está interfiriendo en el funcionamiento de la variable en este caso.
B: Para que el color se cambie, la variable no solo necesita ser declarada dentro de :root, también necesita ser aplicada como background-color de .header.
Para usar las variables, no solo necesitamos crearlas, sino también aplicarlas en nuestro código. En este caso, dentro de .encabezado, la propiedad background-color debería recibir como valor var(color-actualizada-del-proyecto). Recuerda siempre aplicar tus variables.