quando você bota o atributo immediate, significa que o JSF vai pular duas fases: a de validação e a fase que faz os “sets”, ou seja, se você tem um inputText com um value="#{meuBean.meuValor}" esse meuValor não vai ser setado se o componente em questão tiver o immediate
geralmente os immediates são feitos pra situações cujo qual você precisa ir para outra página entende?