Well, it was more of a side effect of the fix but since it happened in 1.5rc1 (if memory serves), It's been there since the inception of prefilters. Also, the code controlling for cross-domain assumes the protocol is actually there.

You're right that we should make this clear in the comments.

If you wanna remove something from ajax, it's the logic pertaining to isLocal. It is completly unnecessary now that we listen to XHRs through onsuccess and onerror. I've been meaning to do so for a while but didn't find the time.