Thanks to the pointers from @JCOC611, it looks like jQuery extracts and then inserts the scripts inside a function called evalScript called from domManip():
function (args, table, reverse, callback) {
var clone = this.length > 1,
elems;
return this.each(function () {
if (!elems) {
elems = jQuery.clean(args, this.ownerDocument);
if (reverse) elems.reverse();
}
var obj = this;
if (table && jQuery.nodeName(this, "table") && jQuery.nodeName(elems[0], "tr")) obj = this.getElementsByTagName("tbody")[0] || this.appendChild(this.ownerDocument.createElement("tbody"));
var scripts = jQuery([]);
jQuery.each(elems, function () {
var elem = clone ? jQuery(this).clone(true)[0] : this;
// execute all scripts after the elements have been injected
if (jQuery.nodeName(elem, "script")) scripts = scripts.add(elem);
else {
// Remove any inner scripts for later evaluation
if (elem.nodeType == 1) scripts = scripts.add(jQuery("script", elem).remove());
// Inject the elements into the document
callback.call(obj, elem);
}
});
scripts.each(evalScript);
});
}
evalScript()
function (data) {
data = jQuery.trim(data);
if (data) {
// Inspired by code by Andrea Giammarchi
// http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
var head = document.getElementsByTagName("head")[0] || document.documentElement,
script = document.createElement("script");
script.type = "text/javascript";
if (jQuery.browser.msie) script.text = data;
else script.appendChild(document.createTextNode(data));
// Use insertBefore instead of appendChild to circumvent an IE6 bug.
// This arises when a base node is used (#2709).
head.insertBefore(script, head.firstChild);
head.removeChild(script);
}
}