Hiya! First post here, so I'll just dive into the deep end. Never believed in long hellos in any case.
Regarding the questions about flat XP systems, I can actually describe how those work, generally speaking.
Old style D&D (and a great many games to follow) used a rapidly increasing XP advancement system, like this:
L1: 0 -> L2: 2000 -> L3: 4000 -> L4: 8000 -> L5: 16000 -> L6: 32000
etc. (I'm just throwing numbers here, the real numbers varied by class and went up in completely illogical patterns in early editions of the game.
)
In this system you got a lot more XP for monsters that you killed as their difficulty increased, such that your advancement rate per session slowed, but not as dramatically as the chart would suggest at a glance. Honestly, the math to handle things this way is kind of annoyingly complex to design around, though there are reasons to take this approach, mostly to do with preventing scumming WITHOUT having to do any complex math during actual play (remember: tabletop game). One significant drawback of this system is that if the players somehow ever manage to knock over a really big monster earlier than expected, they may suddenly jump several levels (this happens all the time in Angband, for example).
There are of course other valid advancement schema, such as gradual progression:
L1: 0 -> L2: 1000 -> L3: 1100 -> L4: 1200 -> L5: 1300 -> L6: 1400
In this scheme, you DON'T reward players more for killing powerful monsters, they get pretty much the same regardless, and their advancement gradually slows according to the cost of their levels. Of course, this system would encourage players to quickly scum weak monsters for XP, so you either need to make sure such creatures are no longer available, or you reduce/eliminate the rewards for fighting them as players advance, so that they are forced to go after stuff their own size. Needless to say, the design math here is a lot easier to keep track of in many respects, but the system does demand that you do more calculation 'on the fly' as it were (to determine whether and how much to reward the players based on comparative levels), which made it arguably less suitable for tabletop - of course, math of this sort means nothing to a computer. In most cases you also do not increase rewards for killing over level, or you cap such benefits to prevent exploitative tactics.
The flat advancement schema is pretty much the same as the gradually increasing one, you just don't increase it at all. It suffers the same essential benefits or drawbacks, but the player continues to go up in level like clockwork.
As for how this applies to your SKILL advancement vs. your level advancement, I'm not entirely qualified to say, as I'm still fairly new to dungeon crawl and in all truth I've been getting my ass handed to me. Nevertheless, the decision of whether to specialize or generalize is highly dependent on which sort of scale you are using.
1st Edition Earthdawn went with geometric costs, with an xp/skill purchasing system that doesn't look all that different from the one in this game - and yes, you might like to specialize, but when it really came down to it you could end up buying a skill from rank 1->7 for the same cost as 7->8, so unless the benefit of that one more level was enormous, you just couldn't justify it compared to having a brand new rank 7 skill from nowhere. It was honestly pretty silly. Well established characters would spring massive new skill sets out of no-where from session to session, because they couldn't afford to raise their primary skills any more, but had oodles of XP to blow.
How much do you want players to specialize or generalize? You control that with the acceleration rate of the costs on the skills. The faster it increases level by level, the more severely specialization will be punished. If they don't increase in cost at all, the player is completely free to choose between focused or general builds, if they do, then the higher they go up a line, the more they will have to consider generalizing into other areas.
So:
Skill Cost pattern A (doubling):
L1: 0 -> L2: 200 -> L3: 400 -> L4: 800 -> L5: 1600
- in this version, for any given level of advancement, the cost of the skill doubles each level. As a result I can raise one skill one level, OR raise an entire new skill to level-1 instead. This severely discourages specialization. This sounds close to what's going on now in crawl? Beats me, I'm just here to talk theory.
Skill Cost pattern B (flat):
L1: 0 -> L2: 100 -> L3: 100 -> L4: 100 -> L5: 100
- In this version every level of any skill costs exactly 100 pts. The player is completely free to specialize or generalize - HOWEVER most game systems tend to naturally benefit specialists (min/maxing) so the drawback here is that players may feel that in effect they cannot afford to generalize until late in the game, if ever. Most games don't use a completely flat skill or attribute cost for this simple reason.
Skill Cost pattern C (linear):
L1: 0 -> L2: 100 -> L3: 120 -> L4: 140 -> L5: 160
- This version gradually increases the cost of skills with each level in a linear fashion, such that by level 10 or so, you are paying a 2-1 premium against a new skill. It modestly discourages high levels of specialization, but wouldn't likely prevent them in the case of a character completely dedicated to doing so.
Skill Cost pattern D (multiplied):
L1: 0 -> L2: 100 -> L3: 120 ->L4: 144 -> L5: 178 -> L6: 207
- This version multiplies the cost of each previous level by 20%. It is functionally similar to pattern A, save that its curve is far less punishing. This version allows a fair amount of early specialization, but eventually the costs do become high enough that some degree of generalization is strongly encouraged.
For my part I tend to prefer pattern C in most cases. The math remains very simple, and with some tweaking you can usually find a decently comfortable balance between the benefits of min/maxed specialization, and those of a more general build. Pattern D allows for a somewhat more rigid control of a character's advancement, such that they cannot easily escape the expected bounds of your game's resolution system by spamming a critical skill very high early in the game (in many games some version of evasion is often abusable in this way). Pattern B usually makes straight specialization too attractive, to the point where it effectively punishes generalization, while pattern A is so strict that it forces as much generalization as the player can profitably take advantage of at all.
Patterns C & D can both obviously be tweaked in terms of how aggressively each advances, to further encourage or discourage specialization vs. generalization.