Has this been suggested?
The obvious solution to multiclassed casters in d20 systems seems to me to be to make a nice 20 x 20 table with your specific class level down the left hand side and your total effective character level across the top. The table entries show a "compromise" level usually somewhere between your class level and effective character level. This compromise level applies for class features of a non-stacking variety (including spells known, spells memorised per day, etc.), but not (obviously) for base attack bonuses, saving throws, hit points etc.
Constructing the table would be relatively simple (but involve some arithmetic). The formula I suggest would be that your compromise level equals the square root of the product of your specific class level and effective character level, rounding down. In other words:-
CompLvl = (ClassLevel x ECL)^0.5
Here are some illustrative examples for a 10th level character:-
Fighter 1, Wizard 9 (human), compromise level for spellcasting of 9
(unchanged from original d20 system)
Fighter 2, Wizard 8 (human), compromise level for spellcasting of 8
(unchanged from original d20 system)
Fighter 3, Wizard 7 (human), compromise level for spellcasting of 8
(you cast spells just like an 8th level wizard, including number memorised; your fireballs are 8HD, etc.)
Fighter 4, Wizard 6 (human), compromise level for spellcasting of 7
Fighter 5, Wizard 5 (human), compromise level for spellcasting of 7
Fighter 6, Wizard 4 (human), compromise level for spellcasting of 6
Fighter 7, Wizard 3 (human), compromise level for spellcasting of 5
Fighter 8, Wizard 2 (human), compromise level for spellcasting of 4
Fighter 9, Wizard 1 (human), compromise level for spellcasting of 3
Funky Weird Race (+4 ECL), Wizard 6, compromise level [edit] 7 [/edit]
(you cast spells like a [edit] 7th [/edit] level wizard)
Funky Weird Race (+2 ECL), Fighter 5, Wizard 3, compromise level 5
(you cast spells like a 5th level wizard)
The solution is mathematically elegant, but by building a 20x20 table, it can be easy to implement.
However all cleric and druid spells per level badly need to be halved, and spontaneous cleric casting got rid of completely.
The table would look a bit like this, but twice as broad and deep
____Effective Character Level__
_________1__2__3__4__5__6__7__8__9__10__
Class
Level
1________1__1__1__2__2__2__2__2__3__3__
2________1__2__2__2__3__3__3__4__4__4__
3________1__2__3__3__3__4__4__4__5__5__
4________2__2__3__4__4__4__5__5__6__6__
5________2__3__3__4__5__5__5__6__6__7__
6________2__3__4__4__5__6__6__6__7__7__
7________2__3__4__5__5__6__7__7__7__8__
8________2__4__4__5__6__6__7__8__8__8__
9________3__4__5__6__6__7__7__8__9__9__
10_______3__4__5__6__7__7__8__8__9__10_
Note that this table also means that if you belong to a weak
race with a negative ECL modifier, your spellcasting is actually
lower than your class level. For instance, if I played a slime
goblin (-4 Str, -4 Con, -4 Cha, -4 Int, -4 Wis, +2 Dex, dark
vision, bad body odour offends all within 5', -3 ECL)
and began life as a 4th level wizard (ECL 4-3 = 1, equivalent
to a 1st level character), I would get saving throw modifiers,
BAB etc. as a 4th level wizard, but cast spells as a 2nd level
wizard. I would have all the arrogance of a 4th level wizard
among slime-goblin kind, and be just as important as a 4th
level slime-goblin fighter, but I would have rubbish spellcasting
like a 2nd level human wizard.
Kind of neat, isn't it?