Hola:
La primera parece estar bien, pero la segunda encuentra un return y se salta la segunda... lo que debes hacer siempre es que el return sea la última instrucción...
Los valores booleanos los puedes "acumular" muy fácilmente, por ejemplo usando una variable inicializada a true y por cada elemento del formulario aplicarle un "Y lógico" (and)
function validar_formulario(formulario){
valida = true;
valida = (valida && validar_campo(formulario.campo1));
valida = (valida && validar_campo(formulario.campo2));
return valida;
}
Saludos