Single-player is usually fine, but it ends up coming off as cheap too often, such as enemies standing in blind spots who kill you in one melee attack. I think CoD2 had a better campaign. CoD4's higher difficulties are a joke, pretty much just showing off everything wrong with higher difficulties in shooters. Any old submachine gun being used by the enemy instantly becomes a sniper rifle, bullets cause your view to randomly jerk upwards and your health pretty much instantly goes to "almost dead" with one hit, making it impossible to fight back or even find something to hide behind.
The problem with the multiplayer is that some parts just step on what CoD is supposed to be. Hardcore, is this a joke? Did they think people would actually be more cautious? If one tiny bit of shrapnel hits you, you're dead. If somebody shoots you in the leg 3 times, you're dead. Then you can just put on the *****ic perk that completely defies one of the most basic and integral aspects of CoD (aiming with the sight), Steady Aim, and suddenly Hardcore is just an easy way to get the kill awards for your submachine guns and assault rifles. The rest of the multiplayer, the courses tend to be too cramped, making it far too easy to just toss a grenade over a wall and get 3 kills. Martyrdom is *****ic, it doesn't make sense in any game and doesn't even require you to have a spare grenade. P90 has almost no recoil at all and has a huge clip. Obvious flaws such as the LMGs' horrible accuracy fired from the hip and long reload are almost completely negated by perks like Sleight of Hand and Steady Aim. It has the basic stuff down, but once the cool bonus stuff like customizing abilities comes in, it just detracts from the experience.