weil for performanter ist als each.
In dem Fall nicht. Weil du nicht drumherum kommst bei jeder Iteration das DOM-Element wieder mit jQuery zu wrappen und ein jQuery-Aufruf ist recht teuer.
Wenn Performanz für dich so wichtig ist, solltest du im übrigen folgende Schleifennotation verwenden:
for (var i=0,l=foo.length; i<l; i++);
So muss nicht bei jeder Iteration in der Prototypkette von "foo" nach "length" gesucht werden.