Hola RDC:
Creo que lo más eficaz es llevar un control de todas las ventanas (tal vez con un array) y con el evento onunload de la principal cerrarlas, pero esa implementación creo que sería algo compleja.
var ventanas = [false, false, false];
...
ventanas[0] = window.open(...);
...
ventanas[1] = ...
<body onunload="for (var i = 0; i < ventanas.length; i ++) if (ventanas[i]) ventanas[i].close();"
... pero existe el inconveniente de que si se cierra alguna ventana desde la misma ventana habría que "avisar" a la página principal de alguna manera...
... desde la hija:
... onunload="opener.ventanas[i] = false;"
Espero que te sirva.
Saludos