The page refresh causes the executeJspLifeCycle() to be executed. Which I guess suppose to create a fresh component tree, but it seems like when the concurrentDOMViews is true and the bean scope is set to the session, ICEfaces uses the old "Tree" component instance which already had a child (TreeNode) and the executeJspLifeCycle() on the page refresh creates another child node to the existing Tree component, which already had a child.
That means on page refresh Tree component gets two child nodes and there is a case in the TreeRenderer that it can have only one children, but after page refresh there are two, that is why the TreeRenderer throws the following exception.
com.icesoft.faces.component.tree.MalformedTreeTagException: The tree tag requires a single child treeNode tag. Found [2]
com.icesoft.faces.component.tree.TreeRenderer.encodeBegin(TreeRenderer.java:146)
Forgot to attach test case. Refresh the page or click the navigate button.