The component a4j:outputPanel offers the attribute ajaxRendered which should update the contents of the panel at every ajax request (see Chapter 2 of the Component Reference). But on a small testpage this can easily be disproved:
<a4j:outputPanel ajaxRendered="true" >
<h:outputText value="Number 1 is #{dummyBean.number1}" />
</a4j:outputPanel>
<h:form>
<rich:inputNumberSpinner value="#{dummyBean.number1}">
<f:ajax />
</rich:inputNumberSpinner>
<rich:inputNumberSpinner value="#{dummyBean.number1}">
<a4j:ajax />
</rich:inputNumberSpinner>
</h:form>
When using the first spinner, the new value gets submitted into the model, but the outputPanel is not rerendered. If I use the second one (with tha a4j:ajax inside), everything works as expected.
This effect is the same for a4j:commandButton vs. h:commandButton + f:ajax and other constellations.
I would expect (especially when reading the reference) that the panel is rerendered even in the f:ajax case.
In contrast to this, the status-indicator works for all ajax requests, nevertheless if it is raised by an RichFaces component or f:ajax.
I am using RichFaces 4.3.5.Final.