You're making it far too difficult!
Just do select="id($navDivID)/foo/bar"
Note also, when you write
<xsl:variable name="x">
<xsl:value-of select="foo/bar"/>
</xsl:variable>
this is a very convoluted and inefficient way of saying
<xsl:variable name="x" select="foo/bar"/>
The two aren't absolutely identical, which is why the optimizer can't simple rewrite the first as the second, but if you use the value as a string then you'll get the same result.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference