JSF - Salvando com ajax

Estou fazendo um form para salvar com ajax e popular um lista logo abaixo. Coisa simples.
Contudo, reparei que o getLista que uso pra carregar o dataTable é chamado 2 vezes no momento que clico no botão salvar.
A primeira vez, ele chama com se estivesse carregando a página pela primeira vez. E a segunda, o salvar em si.
Os códigos são os seguintes:

PacoteDestinoMB

@ManagedBean
public class PacoteDestinoMB {

	@EJB
	PacoteDestinoFacadeRemote pacoteDestinoFacade;
	
	private List<PacoteDestino> listPacotes = null;
	private PacoteDestino pacoteDestino = new PacoteDestino();

	/*@PostConstruct
	public void preparaDados(){
		System.out.println("iniciar");
		pacoteDestino = new PacoteDestino();
		listPacotes = getListPacotes();
	}*/
	
	public List<PacoteDestino> getListPacotes() {
		if(listPacotes == null){
			listPacotes = pacoteDestinoFacade.findAll();
			System.out.println("chamou lista: " + listPacotes.size());
		}
		
		
		return listPacotes;
	}
	public PacoteDestino getPacoteDestino(){
		return this.pacoteDestino;
	}
	
	
	public void setPacoteDestino(PacoteDestino pacoteDestino) {
		this.pacoteDestino = pacoteDestino;
	}
	public void save(){
		System.out.println("salvando");
		pacoteDestinoFacade.save(pacoteDestino);
		pacoteDestino = null;
		//listPacotes = null;
		//return null;
	}
	public String delete(PacoteDestino pacoteDestinoExcluir){
		System.out.println("apagando");
		pacoteDestinoFacade.delete(pacoteDestinoExcluir);
		listPacotes = null;
		return null;
	}

}

xhtml

 <h:form class='form-horizontal form-striped'>
	    	<h:inputHidden value="#{pacoteDestinoMB.pacoteDestino.idDestino}"/>
				<div class="control-group">
					<label for="textfield" class="control-label">Nome do Destino</label>
					<div class="controls">
						
						<h:inputText value="#{pacoteDestinoMB.pacoteDestino.nome}"  placeholder="Destino" class="input-xlarge"/>
					</div>
				</div>
				<div class="control-group">
					<label class="control-label">Internacional<small>Selecione se este destino for internacional</small></label>
					<div class="controls">
						<label class='checkbox'>
							<h:selectBooleanCheckbox value="#{pacoteDestinoMB.pacoteDestino.internacional}"/>
						</label>
					</div>
				</div>
				<div class="form-actions">
				<h:commandButton class="btn btn-primary" value="Salvar"  >
					<f:ajax render="@form" listener="#{pacoteDestinoMB.save}" execute="@form" event="click" />
				</h:commandButton>
				<button type="button" class="btn" onclick="window.location.reload();">Cancelar</button>
				</div>
							
	    
	    <div class="box-title">
	    <h4>
			<i class="icon-table"></i>
			Destinos cadastrados
		</h4>
		</div>
		<h:dataTable id="lista_pacotes" value="#{pacoteDestinoMB.listPacotes}" var="lista" class="table table-hover table-nomargin">
	    	<h:column>
	    		<f:facet name="header">Nome</f:facet>
	    			
	    			<h:commandLink value="#{lista.nome}">
	    				<f:ajax render="@form" listener="#{pacoteDestinoMB.setPacoteDestino(lista)}" execute="lista_pacotes" event="click"/>
	    			</h:commandLink>
	    		
	    	</h:column>
	    	<h:column>
	    		<f:facet name="header">Internacional</f:facet>
	    		#{lista.internacional ? 'Sim' : 'Não'} 
	    	</h:column>
	    	<h:column>
	    		<f:facet name="header"></f:facet>
	    		<h:commandLink class="bt_excluir" value="Excluir" onclick="return window.confirm('Deseja realmente excluir?')">
	    			<f:ajax render="@form" listener="#{pacoteDestinoMB.delete(lista)}" execute="lista_pacotes" event="click"/>
	    		</h:commandLink>
	    	</h:column>
	    </h:dataTable>
	    </h:form>

Reparem que eu tentei usar o @PostConstruct, mas caiu no mesmo problema.
Outras observações interessantes:
Quando Salvo ou Excluo algum registro, tenho que setar as variáveis como null. Se não faço isso, a tabela não é atualizada com os novos dados.