What if we punish people for NOT investing skill points by lowering their damage?
This formula:
skill-level + 20
-------------------
Level + 20
can be multiplied to the damage. It will be unused after level 500.
The result of the formula by the damage a spell does, we get a formula that just acts as a check on if you've invested the points into the fire skill up to your level and punishes if you haven't (by taking off about 5% damage.)
At this point we can take caps out entirely because punishing non-skill point investors (0%) is a much better alternative...
(everything below here is a waste of space.)
Wild idea out of the blue - How about 1 rank of spell for every school, and the intdmg amount is simply based off the number of skillpoints invested in that school (and the MP cost is simply a % of the skill invested also)? - It removes the problem of downranking for efficiency, it removes the *huge* list of spells a hybrid mage has in their spell book. For those of us that often forget to update our hotkeys, it saves a small job. You simply make the mana cost, intdmg and base damage ratios the same as they are now (6intdmg on anti @ 500 skill, 5intdmg @ 400 skill, 1intdmg @ 0skill). Obviously for hybrid spells it would need to take the skill point value for the tree with the lower amount of the 2 (at 100 fire + 200 water your Antipode and Firebolt would effectively be what is now rank 20, your hydro would be what is currently rank 40).
I'm calling this the "single-spell solution". We consolidate all "firebolt X"'s and all "hydro jets X"'s (etc etc) into a single rank and call it "firebolt" or "hydro jet". The benefits for "firebolt" scale with your skill points invested in fire.
I Love this idea.
*devil's advocate hat on*Straight up the single-spell solution doesn't solve the MP:damage ratio problem. Players would simply invest no points until the %damage gains from spells become relevent.
The solution Helen mentioned might indeed work to releive the MP:damage ratio problem... Increase MP costs to lower the marginal change in MP cost.
Say, level 1 costs 10MP, then the jump to 11MP is an agreeable 10% increase in MP costs for the extra 1% damage. Or is it? read on...
The crux of the MP:damage ratio problem is that 1% increase in damage is puny in the early stages. This fault can be traced to the percentage-based spells (as opposed to fixed-damage based spells). These percentage-based spells are essential to end-game balance but truly have no place in the early game. Let me elaborate on this point...
When you are level 10, and have 50INT, 1% is 0.5 additional damage. Whoopee. may as well be zero.
When you have level 200 and have 1000INT, 1% is 10 damage and that adds up when you get +40% damage: +400 damage!
When you have level 500 and have 3000INT, 1% is 30 damage and that adds up FAST when you get +100% damage: +3000 damage! WHOMP!
So clearly, %based is right for the end-game, but wrong for the early game. In the early game the question is "Why would anyone want to pay more MP for +1 damage?" ... Answer is "they won't" and thus the mp-abuse problem.
A cap or soft-cap system solves the problem, it really does. But in the meantime it punishes high-INT builds.
SO, lets see if there is an alternative where (1) High-int ISNT punished (2) we keep the %-based spells in the end-game.
========= FIRST HUNCH (
*EDIT: its a bad hunch, tho!... read critically*) =============
First, some credits: this is 100% triggered by Jonny's mention (in-game) that the single-spell solution leave the spellbook very "empty" and that we will just have to "fill it up." Excellent point. I think we'll fill it up sooner rather than later whether or not we go with this hunch

Onto the hunch: a new spell for each tree, and slap a level requirement on the big-time %-based spells (cutting off the MP-abuse region).
Something like:
skill-level + AdjustNum
------------------------------------ + (0.001) * skill-level
Level + AdjustNum
Then that whole thing equates to something in the range of [0.95, 1] + 0.01 per 100 levels.
so 100% to 110% for the first 100 levels.
call that the INTdmg.
The adjustNum being 20 or so. This forces mages to invest into skill points to keep damage up to snuff, which combines nicely with the one-spell solution's quirk of increasing MP cost with skill-level. Nice.
In a nutshell this is a very slow-growing spell, always around 1intdmg. It is more of a penalty on players not to keep their skill-level up to snuff with their own level. Its like a mage-tax on the mage-build's SP.
So the cap-less spell will be better for 90% of mages for level 1-250. Low-int mages that have perfected having int RIGHT at the cap and no more will no longer be rewarded for that talent and can pump into INT like everyone else.
Why does this help? because the original trees can be made to have FIRE=250 requirement to cast, cutting off all the low-level abuse, and providing a target unlocking moment where the "firebolt" will become available.
Is this better than caps? maybe. Maybe not.
EDIT: on the re-read it seems intuitively clear this implementation ends up punishing all mages instead of just high-int mages. It cuts off their excellent level 100-250 spell boosts that keep them evenly paced with fighters. It is just plain bad thinking! 
=========== SOFT CAPS ============
this could be the solution. But as mentioned, it punishes high-INT characters...
=========== Punish non-investment ========
This formula:
skill-level + 20
-------------------
Level + 20
When we multiply the result of the formula by the damage a spell does, we get a formula that just acts as a check on if you've invested the points into the fire skill up to your level and punishes if you haven't (by taking off about 5% damage.)
At this point we can take caps out entirely because punishing non-skill point investors (0%) is a much better alternative...
====
Thoughts?