Don't know why, I was always under the impression fans pulled air away from the CPU to cool the fins.
Wow, that's like 20 years of wrong!
All Intel and AMD stock coolers and GPU coolers have their fans arranged to blow air down onto the CPU. You can generally tell the airflow direction of a fan by the open side, which is the side air is entering. The exhaust side has splines that hold the motor and such.
CPU air coolers generally have 2 open sides. More if it's a radial fin arrangement like the Intel/AMD stock coolers.
Fans inherently have the greatest airflow at the tips (outer circumference) of the fan blades.
Because of the open sides of an air cooler, if you're trying to pull air through them, the path of least resistance is to suck air in from the open sides of the cooler rather than the opposite end. Because of this, you're getting less airflow depth/uniformity through the cooler compared to pushing air into the fins. Pushing air into the fins ostensibly results in air leaking out the open sides as well (depending on the flow pattern of the fan, see below) but you generally lose less in a push scenario.
Downdraft (<=
) air coolers like the Noctua NH-L9i mentioned here also have the added benefit of cooling the mobo VRMs with the air that splashes out against the CPU and radiates outward.
Ways to combat the efficiency losses of pull config: Enclose the open sides of the fins. Much like a water cooling radiator which has all 4 edges enclosed, if the air cannot escape out the sides of a cooler, it has to pass all the way through the fin stack regardless of whether you're pushing or pulling.
###To be clear, we're not talking MAJOR differences in cooling performance between push and pull configs on air coolers. Most of them are relatively thin (compared to something like the Sycthe Mugen 5 or similar) so the efficiency losses aren't dramatic. BUT, unless a push config creates clearance issues, it's the best for air coolers.