Enable the removal of defined variables. Variable definitions should exist within well defined scopes. All but a 'global' scope must be able to remove variables no longer in scope.
Enable the use of relative xpath values during evaluation. Requiring full paths makes transform reuse more difficult, and "//..." is too likely to be ambiguous. It should be possible to make xpath evaluations relative to a specific root node. Refer to https://stackoverflow.com/questions/33416524/libxml2-xpath-relative-to-sub-node for illustration of how switch the logical root. Refer to https://stackoverflow.com/questions/19474376/node-selection-using-xpath-in-libxml2 for evaluation to a node.
Enable iteration of a multiple node evaluation. The use of for-each (or other looping construct) suggests a need to select multiple nodes and act on each one.