This doesn't actually have anything to do with the XInclude. Instead, it's a limitation on the processing of inline XSL inside a <rules if... /> construct.
As the Diazo docs note:
Inline XSL directives must be placed directly inside the root <rules> tag and are applied unconditionally.
[By the way, the "uncoditionally" in the docs is not quite true. Using method="raw" will avoid application for particular rules.]
Inline XSL is normally appended to the generated XSL after the transformed theme. Diazo clearly does not know what to do with bare XSL inside a <rules if... />. So, it omits it. This is probably a good thing, since anything else probably wouldn't make sense.
By "inline" XSL, I mean XSL that is not inside a replace, after, before or other rule that attaches to elements of the theme or content. Concretely, this is anything using xsl:template.
XSL inside a replace is not governed by this limitation. So, you could put the following in your section-one.xml:
<replace css:content="li">
<xsl:copy>
<xsl:attribute name="class">subNav</xsl:attribute>
<xsl:apply-templates />
</xsl:copy>
</replace>
and get what I think you're after.