How about something like the following:
As far as crafting and XP costs are considered, give each caster a relatively small amount of XP as a buffer; say 50xp*Level. This pool refreshes every level and any unused points are lost (so, for example, upon gaining level 13 and scribing Limited Wish into his spellbook, Bob the wizard has an XP buffer of 650).
Thusly, Bob can cast Limited Wish twice and have 50xp left in his pool.
When you draw more XP than the pool holds, it automatically refills and [something painful happens*].
*not sure what this should be yet, something along the lines of a Negative Level that sticks around for a while before going away.