I think the hardest part about loading it from the DB is we don't want to query the DB every time we run
Client::GetEXPForLevel(), so we'd want to load it into memory. To do that, we need to load the info into each zone we load. Granted, it would use
4 * max levels bytes of memory per zone (300 bytes for 75 levels), but I don't know if it's really worth it for a handful of servers that would want to modify the exp tables instead of the exp gain multipliers.
Personally, I think it would be easier for a server admin to modify the function & recompile than it would be to add a table & populate it with the exp amount for each level.
I do think it would be easy to put in something to make linear exp gain, but I don't think it would work well with the rules system, since you don't really want to change exp gain on-the-fly.