Eu sei que esse problema é bastante batido… O commandlink dentro do datatable não funciona com o MANAGED BEAN em escopo request.
Atualizei meu JSF e o RichFaces e o commandLink funciona bem agora.
Só que eu coloquei 2 selectOneMenus cada um com a4j:support para renderizarem os componentes e o commandLink parou de funcionar.
O código resumido está assim:
<f:view>
<body>
<h:form>
<h:selectOneMenu id = "selectPeriodo" valueChangeListener="#{lotacaoBEAN.selecionarPeriodoOnChange}" ...
<a4j:support event="onchange" reRender="selectPeriodo, selectLotacao"/>
</selectOneMenu>
<h:selectOneMenu id="selectLotacao" value="#{lotacaoBEAN.lotacaoAtendimento}">
<a4j:support event="onchange" reRender="selectLotacao"/>
</h:selectOneMenu>
<h:commandButton id="botaoOk" value="Carregar Atendimentos" action="#{atendimentoBEAN.botaoCarregaAtendimentos}">
<a4j:support reRender="dataTable" event="onclick"/>
</h:commandButton>
<rich:dataTable id="dataTable" value="#{atendimentoBEAN.atendimentosList}" var="atendimento">
<rich:column>
<h:commandLink value="Alterar" action="alterar">
<f:setPropertyActionListener target="#{alterarBEAN.atendimento}"
value="#{atendimento}"></f:setPropertyActionListener>
<f:setPropertyActionListener target="#{alterarBEAN.codigoProcedimentoAnterior}"
value="#{atendimento.procedimentoAtendimento.codigoProcedimento}"></f:setPropertyActionListener>
</h:commandLink>
</rich:column>
</rich:dataTable>
</h:form>
</body>
</f:view>