quasi tutto chiaro, una sola ultima cosa :

2. ASP codifica lo spazio in + (mi pare); quindi potrebbe essere che le funzioni [un]escape() in jscript (in IE) si comportino come ASP;

non è il contrario ???

cioè la funzione che ho postato codifica gli spazi in +, mentre la escape() codifica gli spazi in "%20"