eu ja trabalhei em um ERP que carregava apenas uma página de login e uma página index, o resto era tudo via AJAX;
nós faziamos da seguinte maneira, deixavamos uma div com um id dentro do layout.html e nós criavamos as funções e views normalmente porem ao invés de chamar pelo html ou por botões como a maioria de páginas fazem, nós faziamos o request via AJAX para uma função de um controller que retornaria uma view e jogavamos isso dentro da div que setavamos no layout, dessa forma abriamos qualquer formulario,grid, etc sem carregar páginas.
um exemplo de como usavamos AJAX:
-- aqui coloque uma função que faça um gif de "loading" aparecer
$.ajax({
type: "get ou post",
url: "controller / function / parametros",
dataType: "text",
async: false, //add this
}).success(function ( data ) {
$('#mae').html(data);
--aqui retire a função "loading"
}).error(function ( data ) {
$('#mae').html('erro ao carregar pagina, detalhes do erro:'+data)
--aqui retire a função "loading"
});
é claro que vc também pode trabalhar com frames mais esse método ajax é bem simples e também é funcional.
--