The GPU is a great engine for small highly predictably operations, the kind of which are required in their thousands in order to paint a single image onto a canvas (memory buffer) in order to be displayed on a screen.
The GPU can perform many hundred operations on a single memory buffer simultaneously using what are known as shader programs, this is used to make the images pretty, adding features that make modern games look so stunning. The problem is that due to their requirement for high speed and data throughput these programs need to be continuously changed, pointed at new data and generally managed.
This is just one of the things that a CPU does for modern games. The graphics card makes it look pretty while the CPU tells it just how to make it pretty. A lot of strategy games also require the realtime tracking of many thousands of in game objects and what those objects are doing at any given moment.
For example I will give you an idea using one game, Supreme Commander.
You have a single unit. Simple enough.
That unit can be moving, in which case you need to keep track of direction and speed vectors for that object.
The unit has a gun, in which case you have to track whether or not it is firing.
The gun fires bullets, for each bullet fired the game has to create an object detailing the direction and speed of that bullet, or at least create a virtual line from the gun then test to see if other in-game objects intersect that line.
Lets say it's not a simple gun but is instead something like a ballistic launcher, it needs more realistic ballistic simulation. The bullet needs to be tracked as it crosses the map, having its speed and height constantly simulated by a (near) real-world ballistic model. That will need to be done hundreds of times a second in order for the projectile to look right.
This is all at the same time as telling the graphics card just what to paint where mind you.
The projectile needs to be constantly tested to see if it is occupying the same space as an enemy unit, in which case you have a hit, otherwise carry on.
If a hit occurs you then need to calculate what happens, does the unit take damage or is is killed? In either case do we need to show the user some kind of "bang" animation? Bits of shrapnel flying off, that sort of thing... In which case each of those bits of shrapnel need to be tracked and animated and eventually destroyed so they no longer need to be simulated.
Now imagine that each player can have up to 500 units, all potentially able to move, to fire multiple guns or missile launchers, to have to test whether there are enemies nearby to fire at in the first place. Potentially thousands of bullet interactions, missile paths and ballistic projectiles that need to all be created, tracked, tested and have visible actions that happen as a result. Put 8 players in that game and you quickly have several thousand units with tens of thousands of projectiles in play, all with associated programming "objects" that need to be created, tracked and destroyed over the life of the object.
That's a whole humongous amount of calculations right there that is needed in order to display each and every frame of graphics, and that's before you go to tell the graphics card just what it can show.
In a lot of games you can (kinda) ignore anything that is off-screen or out of area at the time but not so with an RTS game, each unit can move, fire and die independently of what you are looking at at that given moment. Each unit also has an in-built "AI" to tell it how is should move around, how to avoid obstacles, how to get to the enemy, when it should be firing, how it can fire.
These things do not lend themselves to the kind of thing a graphics card could easily do. Graphics cards work well running a hundreds of copies of a single small program against large blocks of data and don't do too well with the kind of large and long calculations that every step of calculating the status of a single unit is up to. Sure it could handle the ballistic projectiles and things like that, but for every bit you track that way you loose power that could be used to display images.
CPUs are plenty powerful and can handle a lot more complex branching programs than a graphics card can and are much more suited to large scale management of an overall system while graphics cards are good for pure number crunching and showing pretty pictures.