in JSF, the action is invoked of the fifth JSF lifecycle phase, but rendering happens on the sixth phase. So, the order is: first action, second rendering. This is a normal JSF behaviour and RichFaces does not changes anything in this behaviour.
May be you mismatch rendering with something else.
Thanks you are right!
It was because of my code error. The action I specified was to change the checkbox boolean value, which is in fact changed by the setter automatically. so changing it again in the action causes the wrong check box value. Together this produced false perception that it is re-rendering first then do the action.