> Why does injecting a script _require_ the ajax module? 

Because it's not injecting a script, it's making a **synchronous** ajax request (at least for same-domain stuff).

Do you really want to duplicate all of this XMLHttpRequest logic in manipulation? It makes sense to re-use ajax here except we now support builds without ajax, so we need to provide a way to re-implement this for advanced users with their other lib of choice (or none like I stated in a previous comment).

> As for "_": it's a bogus inference that means nothing. jQuery UI uses it, jQuery uses it... but all it means is that we can close tickets as "Won't Fix", because it's not for user code to mess with... except when it is, like **right now**.

It's code users shouldn't mess with but advanced users can.

Hell, our users can override ajax, css, whatever, marked as private or not, documented or not.