Hola ^_^
bueno después de tanto luchar no he dado con una solución lo suficientemente adecuada para mi gusto, pero procedo a comentar la maroma que hice:
Decidí cambiar de maquetado hecho por mi a un grid responsive (el de Primefaces), para lo cual presentaba el mismo problema. Pude solucionarlo poniéndole alturas estáticas a los div2 y div3 mientras que al div4 le puse una altura calculada, es decir:
Código CSS:
Ver original.div2{ height: 80px; }
.div3{ height: 50px; }
.div4{ height: calc(100vh - 130px); }
y es así como lo solucioné, mi conclusión es que la altura no importa mucho, o por lo menos no tanto como la anchura a la hora de hacer responsive un sitio.
Espero que le sirva a alguien