Frankly, it's just plain easier and cheaper to slap on additional boosters to the lower stage than to add capability to the upper stage. Every Kg of mass you add to the upper stage translates into N Kg of additional propellant in the booster, and N can get impractically large in a hurry.
Also, where thrust (power) matters more for the booster, specific impulse (efficiency) matters more for the upper stage. You're better off using a lower-thrust, high-Isp engine on your upper stage than slapping more high-thrust, low-Isp engines to it.
Comparing the Falcon 9 and Atlas V vehicles:
Rocket Mass to LEO Mass to GEO
------ ----------- -----------
Falcon 9 22800 8300
Atlas V 18850 8900
F9 can lift more to LEO, but the Atlas can lift more to GEO. That's because the Atlas uses the hydrolox Centaur upper stage with the RL-10 engine, which has much lower thrust than the kerolox F9 upper stage with the MVac (99,100 N vs. 934,000 N, per Wikipedia) but a much higher specific impulse (451 s vs. 348 s, same source).
But, practical engineering considerations come into play. Hydrolox stages are expensive - because of the low density of LH2, the tanks have to be a lot bigger to hold the same mass of fuel, they have to be kept much colder, etc. The F9 is as wide as it can get (~3.6 m diameter) and still be road-transportable. They can't stretch either stage to be any longer because the whole stack is as tall as it can get for its width (otherwise it can bend due to wind shear). SpaceX chose to use common materials, tooling, and propellant for both stages to keep costs down.