I'm one of those battle rifle/pistol people.
The gunplay in H3 was just far beyond COD4, IMO.
Debatable. I didn't like how the starting gun was sorely outclassed by like 5 different weapons and how said default starting gun needed to empty a clip while rushing the enemy to melee kill/trade-kill with the enemy. Trading kills in that game was hilariously bad.
CoD4 trades that "outclass" gun system in for a Higher Rate of Fire > Slower RoF system. Which sucks, and is in use by a lot of modern "military shooters." However, all the guns in theory take the same 2-3 bullets to kill an enemy. That lowered the skill curve significantly and meant a player with good map positioning could control the round.
However they both have their faults in regards to being "arena shooters" that fall flat in trying to be a successor to Quake 3/Unreal Tournament. CoD with the rate of fire/damage being the same system and Halo for the fact that the "outclassed guns" are SORELY outclassed to where it felt like you were bringing a butter knife to a Gatling gun fight. You can't pull off something like bunny-hopping-rocket-jumping to outplay a railgun user in Halo.
BF2 had anti-air and anti-vehicle stuff all over every spawn point on some maps it felt like. Especially the unconquerable areas to I assume prevent spawn camping.
Which, of course, for a while made it my goal to circle around to the other teams spawn area since usually most of the good stuff especially jets and choppers spawned only there, throw C4 onto stuff and sit in the AA weapon then blow up people as they hopped in something and took off. Then throw grenades wildly as they killed me. 
BF3 has them as well. User controlled. Problem is they weren't placed in a very well positioned area a lot of the time to where a lot of people just ignored them. BF4 changed this to where a jet has to be in your uncap to be attacked AND has to be spotted for the non-user controlled anti-air to kick in. I don't mind that change, but at the same time jets REALLY aren't going into the uncap anyway to where the anti-air is essentially useless.
I'm talking in regards to the rest of the map though, in BC2 your options for anti-air was:
-Practice with the RPG-7/Carl Gustav for hours to hit them consistently (CG wasn't great for this though)
-Learn to snipe with the AT-4 (better option, but really shouldn't HAVE to do this)
A lot of the maps didn't feature an anti-air wagon (which got replaced by the hilariously broken for two games now mobile Anti-Air vehicle) and if not that, an anti-air station that wasn't more than one in the center of the map.
Oh, right and:
-Using a tracer dart and hitting the helicopter and praying they didn't smoke it off so someone with an RPG-7 could lock-on to your tracer dart a la a Stinger/IG-LA in BF3/4 to nail the helicopter.
Infantry vs Air was frustrating in BC2. BF3/4 attempted to solve this by adding the Stinger/IGLA but at the same time it lopsided the battle toward infantry because a lot of the infantry can carry it. Item/class limits could probably solve this but "no fun allowed/competitive balance" isn't really the goal for BF and really shouldn't be. It's something that makes me scratch my head toward BF4's "CTE" wanting to make the game super competitive for ESL/MLG/etc. when a lot of pro players have left the game because it
simply isn't meant to be that.