How are you getting your component instance? If it's via Bijection
@In @Out MyConversationComponent component;
Then I would expect that your changes to component should get propagated even if you make a call to Redirect.execute() with the method. If it's not I'd file a JIRA.
If however you're manually grabbing a component out of a context I wouldn't expect bijection demarcated flushing to happen for you, and thus this would be expected behavior. It's hard to tell from your pseudo code what you're actually doing.
Thanks for the reply.
I solved my problem/mystery (predicatably my fault). The code in question is being called from outside the phase listeners, in a custom Lifecycle implementation to be precise so the Seam Lifecycle.endRequest() never gets called to flush out the conversation context. Just have to do it manually in this instance.