What namespace should the
<b>
element be in after inclusion, foo or no namespace?
No namespace. XInclude operates at the infoset level and preserves the infoset properties of the included content. The infoset specification explicitly makes the point that
An information set corresponding to a real document will necessarily be consistent in various ways; for example the [in-scope namespaces] property of an element will be consistent with the [namespace attributes] properties of the element and its ancestors. This may not be true of an information set constructed by other means; in such a case there will be no XML document corresponding to the information set, and to serialize it will require resolution of the inconsistencies (for example, by outputting namespace declarations that correspond to the namespaces in scope).
(my bold) - the <b>
element is not in a namespace, but its in-scope namespaces infoset property is no longer consistent with the namespace declarations in the "virtual" document that results from resolving the XInclude.