In the current proposed XProc 1.0 errata (E.13), we clarified that variables can shadow up but not "left" (preceding siblings). We should remove this restriction in 2.0 to make XProc more like XQuery and XSLT. Variables can be redefined in both of those languages by following sibling elements.