I have had an idea for some time how task flows should work. I developed an implementation on jsf 1.1 which served me very well on a number of projects. Basically it outlines a strategy of how parameters are passed between flows, embodies the concepts of parent flow and child flow and allows for flow refreshes when the parameters to a parent flow change or even allows for reset if the component is no longer visible (i.e: if a tab switch occurred in a parent component) . Here is the implementation here https://jira.springsource.org/browse/SWF-660
I still haven't managed to move this concept to a jsf version 2 spec. So 2 made this harder rather than easier!!!
Please contact me if you can somehow help get these concepts moved to version 2.