You need to have a look at your action attribute. It should be an EL expression, that should point to some method on your managed bean. It it returns nothing or null, you will be redirected back to the page the call came from.
If you have a navigation case defined in your faces config xml file, and this method returns a String that matches this navigation case, then you will be redirected to the page defined in your navigation case.
I just came across the same problem. I personally reckon its a bug in the spec and/or implementation as it should decode all components that were displayed originally not ones based on the state of the model at the decode phase time.
My solution was to use Tomahawk's saveState. It restores the previous value to the model so you can use it in the rendered attribute. I've got more detail here.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com
subject: Problem using rendered attribute in Command Button