Thanks for taking the time to look at this so quickly. I'm still unsure how #2 isn't a sequence if #3 is.
Do you mean the result of #2 and #3? All results (values) of XQuery expressions are "sequences" (with 0 or more items), so the result of #2 is a sequence as well.
I'm just a bit surprised that text nodes and element nodes are returned differently.
This is actually not about text or element nodes, it’s about descendant vs. child axis:
The following two queries are identical:
$node//text()[1] $node/descendant-or-self::node()/child::text()[1]
If evaluated, you will get the first child text node of all nodes of $node. In contrast..
($node//text())[1] $node/descendant::text()[1]
..will give you the first descendant text node of $node. Do you see the difference?
Hope this helps, Christian