If you want a quick and dirty fix for full casting vs. non-casting classes, make the XP needed to advance from one level to the next be double that if you want to level up in a full caster class. So just find the difference between the XP you have at, say, level ten and at level eleven and double the difference. That is the XP that one must gain to get the eleventh level of wizard.

If the character is multiclassing, instead of doubling the XP find out the normal XP to get to the next level and then add the difference in XP as if they were leveling up with all their mundane class levels removed. (Does that make sense?)

Classes like Warlock, Bard, Psychic Warrior, etc. or other classes that start out with casting but don't have a full progression are one third more expensive, XP-wise.

In this way, multiclassing between casting and non casting classes may be more prevalent, (it is a more viable option, at least,) and magic becomes harder to master than mundane skills. (Which is how it should be, I think.) It also helps game balance some. Sure, it still doesn't address the core issue of versatility and being able to replicate entire lines of class features or feat chains with one spell, but when to be a tenth level wizard you will have to adventure with a twentieth level barbarian, the caster will definitely need and rely on their mundane allies more.