Duplo clique para executar método - JSF 2.1, primefaces 3.3.1

Olá a todos.

Estou fazendo um CRUD simples.

Uso JSF 2.1, Primefaces 3.3.1.

E me deparei com um problema e uma dúvida.

na minha página index.xhtml, onde são listados todos registros tenho um botão para outra página que está desta forma:

após o clique ele exibe a página para inserir, onde tem dois botões:

<p:commandButton value="Salvar" action="#{clienteBean.inserir}"/> <p:commandButton value="Cancelar" action="index"/>

se eu clico no Salvar ele executa o método inserir do bean cliente, e ao final do método tem:

se clico no botão cancelar, ele simplesmente volta para a index.xhtml. Até ai tudo bem.

O problema é que em ambos os casos, quando volta pra index.xhtml, ao clicar em qualquer botão, ele não faz nada, ao clicar pela segunda vez ele executa o comando desejado.

Depois de debugar o método construtor do bean, percebi que no primeiro clique ele é simplesmente instanciado, mas não chama o método desejado, na segunda vez ele instacia novamente e chama o método desejado.

O meu bean é request scoped.

Durante um dos testes, coloquei pra não fazer o forward, e sim o redirect, desta forma:

//no botao da pagina inserir.xhtml
<p:commandButton value="Cancelar" action="index?faces-redirect=true"/>

//no retorno do método de inserir
return "index?faces-redirect=true";

No caso do botão cancelar, também conseguir resolver de outra forma, colocando o atributo: ajax=“false”.
Com esse atributo, ao voltar para a index.xhtml, no primeiro clique ele executa o método, porém, ao voltar para a index.xhtml, ele muda a url.

Exemplo:
Estou em "cliente/index.xhtml"
clico no botão "Novo cliente"
A url permanece "cliente/index.xhtml"
Clico em "Cancelar"
a url muda para “cliente/inserir.xhtml”

Gostaria de ajuda para entender o motivo destes comportamentos, suas possíveis soluções.

Obrigado.