This is correct.
Result tree fragment is the fifth data type XSLT's adds to XPath's four data types (boolean, number,
string and node-set). It is treated as a string by all XSLT elements except <xsl:copy-of>, which see it as a node-set. Practically it means that you cannot "generate" XML dynamically in your XSLT out of strings and then query it, it still be treated as string. You can only add your hand-made markup to the output.
The new version of XSLT specification (2.0) removed this limitation and the result tree fragment is now first class citizen - you can query it as a node-set.