Actually, you're example of jQuery having a "specific quest" and therefore finding the element faster is inaccurate. Both Sizzle (the DOM traversal library jQuery uses) and CSS, find an element in the DOM by searching what's in the selector from right-to-left, not the other way around. So ".someDiv a" is actually no faster than "a", because all <a>'s are found first, then filtered out based on the rest of the selector.
Now, browsers are getting so fast that this has little to no performance affects for CSS, and jQuery sees minimal slow-downs because of this, but more than CSS does. The absolute fastest way to accomplish your exact selector w/ jQuery would be:
- $('left').find('.main').find('li').find('a')
Believe it or not. This is because when you have more than 1 element in a jQuery selector $('.foo .bar'), it has to use Sizzle, which can be slow, otherwise it can use native DOM methods (such as getElementsByClassName or getElementsByTagName) to find what you're looking for.