Seems that everyone has a day off.
Registering a phase listner shows that all the phases after RESTORE VIEW and before RENDER RESPONSE are skipped. But this, I repeat, only the first time button is clicked after been rerendered (of course the same problem with the actionListner).
I can't find the reason of such behavior. Would be very grateful for any explanation or simple workaround.
So it appears to be a JSF2 bug... or feature.
Try execute="@this". That solved the same problem for me.