While I love AI as competitors, I don't like AI as allies. Pathfinding, accuracy and such are common issues... but that's not why I hate AI companions.
I generally prefer not to have an AI companion, regardless of implementation, because the AI acts independently of my playstyle and impulsive decisions... thereby interfering.
For example, I might want to be stealthy, snapping necks or sniping from afar. The oblivious AI draws the enemies attention by not hiding, even going in guns blazing.
To a degree, this is avoidable. But the amount of planning and coding (and trial-and-error) required for an AI companion to regularly recognize and adapt to the many possible player behaviors is daunting. And in most action games, all it takes is a moment's hesitation for a companion to disrupt the player's gameplay.
For example, say the player is moving forward when an enemy suddenly comes from around a structure and into view. The player immediately falls prone to avoid detection, but the AI must wait for the player to act to know if he will go prone or charge and shoot. That moment's hesitation gets them spotted and now the player is forced to engage. I'm sure you can imagine any number of similar scenarios where a second's hesitation is a second too long.
Of course, there is some hope. Neverwinter Nights let players choose basic AI behavior, in the vein of "Stay [x] far from me" or "Use your [ranged/melee] weapon". I'm surprised that sort of feature hasn't been included in many other games... particularly FPS games.
It's common in squad-based games for the player to be able to give direct orders like "Go there" or "Focus on that target". Being able to adapt an NPC companion's general style and/or gear would be nice. Yes, being able to select from different companions allows this to a degree. But that's painting in broad strokes. We can do better.