is it possible to have an unescaped ampersand generated via XSLT?
Not without using disable-output-escaping
(and that can only work when the XSLT engine is responsible for serializing the output XML tree, it will be ignored when the output is a DOM, for example), and if you could then the output you generate wouldn't be XML and your downstream components wouldn't be able to parse it.
But it shouldn't be necessary anyway, because if you have an XML document
<url>http://example.com/query?year=2013&month=12</url>
then when you read the document with an XML parser the value you will get out for the url
element is the unescaped http://example.com/query?year=2013&month=12
. You don't need to care how the url is represented in the XML serialization, the value you get out of the parser will be the one you expect.