potrebbe funzionare anche cosi, senza la creazione di nuovi metodi o oggetti di supporto:

codice:
domQuery = function (sSelectors) {
	var oQuery = new Function("return arguments.callee.follow.apply(arguments.callee, arguments);");
	oQuery.selectors = sSelectors;
	oQuery.nodes = document.querySelectorAll(sSelectors);
	oQuery.attributes = setAttribs;
	oQuery.inlineStyle = setStyles;
	oQuery.follow = getNodes;
	oQuery.toString = getSelectors;
	oQuery.valueOf = getNodes;
	for(method in domQuery){
		oQuery[method] = domQuery[method];
	}
	return oQuery;
}

domQuery.method1 = method1;
domQuery.method2 = method2;
Resta il fatto però che non si riesce a levare quel ciclo

Lo sai che arguments.callee è deprecato e che se scompare dal linguaggio una cosa come quella che ho fatto io diventerebbe impossibile?
No non ne sapevo nulla...