You don't always need a jQuery object in the loop, and providing one encourages people to do slow things. For example, if you want to see if a check box is checked, `this.checked` is 100 times faster [http://jsperf.com/bens-test] than `$(this).is(":checked")`. (Sorry about the lame name, I was hanging out with Ben Alman after the jQuery Conference, it was late, and I was tired).
If you do need a jQuery object, you can use James Padolsey's trick by keeping your own single-item jQuery object outside the `.each()` and update/reuse it inside.
While I agree, the thing that jQuery does, and this was outlined a long while ago in a presentation is that different browsers have different behaviors sometimes for some of the most simple things. Querying is one of those, and the list goes on. Sometimes there are just browser bugs! Frameworks like jq and others ensure a consistent behavior between different browsers.
Also note, native browser calls will always be faster. JQ gives you some major power though. It is always best to optimize the big parts of your performance with jq and other frameworks getting the logic correct, then these micro optimizations can be made, including this iterator and your this.checked. However for a general use case, this iterator is exactly what people need as it solves the 70% case.
If you do need a jQuery object, you can use James Padolsey's trick by keeping your own single-item jQuery object outside the `.each()` and update/reuse it inside.