¿Cómo caen en cascada las propiedades personalizadas de CSS?

Digamos que tengo el siguiente CSS:

:root { --color: blue; }
div { --color: green; }
#alert { --color: red; }
* { color: var(--color); }

y mi marcado es:

<p>I inherited blue from the root element!</p>
<div>I got green set directly on me!</div>
<div id="alert">
  While I got red set directly on me!
  <p>I’m red too, because of inheritance!</p>
</div>

Mi pregunta es ¿Se traduce el CSS anterior a:

body {
  color: blue;
}
div {
  color: green;
}
#alert{
  color: red;
}

o hay un adicional

* {
  color: red;
}

Sin variables, el selector universal aplica el mismo CSS en todos los elementos. ¿Cambia esto y el estilo se vuelve dependiente de los elementos?

Una pregunta más que tengo es si:root se traduce enbody en CSS

Aquí hay una demostración de CodePen:http://codepen.io/anon/pen/RrvLJQ

Respuestas a la pregunta(2)

Su respuesta a la pregunta