currently // expands to /descendant-or-self::node()/ which is not owhat
one would first think of, but it works consistently without depending on
the following step. And that expansion is at the level of expression
terms not syntax fragments.
one might expect // to expand to descendant:: but descendant:: itself
isn't really an expression, just part of the syntax for an axis step and
that causes problems..
//foo could have been defined to be /descendant::foo
but you can not define
//@foo to be descendant::@foo as that's a syntax error, wheras
/descendant-or-self::node()/@foo is all foo attributes in the document,
which is the desired meaning.
similarly any other axis, including child::
//child::foo can't expand to /descendant::child::foo