Well, by checking out [https://github.com/visionmedia/superagent/blob/master/lib/client.js](superagent's index.js) (check out [https://github.com/visionmedia/superagent/blob/master/lib/client.js#L524](Request.set) and [https://github.com/visionmedia/superagent/blob/master/lib/client.js#L755](Request.end), it looks like they get all parameters into a flat dictionary and [https://github.com/visionmedia/superagent/blob/master/lib/client.js#L812](finally sets them to an HttpRequest) created from the `window` element.

So, I guess any internal headers are overriden by this mechanic, since they manually set them all to the new HttpRequest. Internal headers seem to just be default values. I may be wrong here, but that's what I could get by scanning superagent's code.