Green Armadillo is pondering NPC companion/pet stupidity as a feature. I think this is a rather difficult problem: On the one hand there are obvious advantages of being able to play SWTOR flashpoints and other instances through with just one real friend and two companions. On the other hand you don't want somebody leveling up a healer, showing up for a raid or instance with his guild, and being told that they'd rather bring a companion, because the companion heals better.
Some people are immensely proud of their leet skillz in playing MMORPGs, so what I will say now might be a bit controversial: There is no role in a group which theoretically could not be performed better by an artificial intelligence controlled companion/pet NPC than by a real player. Basically both the core function of a class and the "moves" of a particular encounter follow relatively simple basic rules. The difficulty for a human being is setting priorities when the action is fast, making decisions in split seconds. Not being slowed down by ping and reaction time, and not easily confused by a multitude of simultaneously incoming information, an artificial intelligence certainly could play this better than we can.
Thus even without "cheating" (like being invulnerable to AoE), a healer companion could be programmed to not stand in the fire, and heal the group, and do this better than a real player. Now some people would much prefer to play with their real friends than with an AI companion. But 7 years of WoW guilds and raiding are proof that players are often willing to rather take the best performing character with them on a raid than the most likable. Thus if companions played better than players, many guilds would automatically staff half of their raids with companions.
Thus the artificial stupidity of your companion actually *is* a feature, and not due to laziness or technical constraints from the developers. Companions could be programmed to perform better, but given that real players have a wide range of different skill levels, the point where the companion becomes better than your least performing friends isn't all that hard to reach. And that is a slippery slope, because if you make the companion better than the least well performing player, then why not make him better than the average player too? Or better than the best player? That has serious social and motivational consequences. The illusion of the value of "playing well" is easily shattered if you see a bot outperforming you.
So how good do you want your companion to be?