Hola:
Si te fijas en la asignación del evento, se hace en la celda... o sea del array de celdas "cells", la primera "[0]" (donde está el radio)... también hubiera podido hacerlo con el radio, usando el primer hijo... cells[0].firstChild, y entonces no valdría el padre, sino el abuelo (la fila)... y la asignación hubiera sido:
marca.parentNode.parentNode.style...
Y sobre la marca en azul, simplemente tiene ya el color por el mouseover (solo se cambia el color si no está seleccionada), así que cuando sale el ratón de la fila, ya deja de funcionar el efecto (si ha cambiado el estado del radio), y se queda en el último color...
La verdad parece complejo, tal vez lo más complejo sea intentar explicarlo...
Cuando consideres usar el DOM (esto de los nodos), debes tener también cuidado con los espacios en blanco, ya que hay navegadores que un espacio en blanco es un nodo, así que un nodo.firstChild puede ser distinto dependiendo del navegador... en este caso no sucede porque la definición está hecha sin esos espacios...
en resúmen, esto:
<td><input type="radio" name="actualizar" value="r1"></td>
es distinto que esto (fíjate en el espacio en blanco antes del radio):
<td> <input type="radio" name="actualizar" value="r1"></td>
Acabo de darme cuenta de que no estaba cerrado el tag de la celda.
Saludos