Not asking you to alter you design in any way, but heres some food for thought. How does experience relate to the game, I'm not talking about the variable inside the game, but the players experience playing the game. You said that you could maybe unlock special attacks for high level players, or buff their strength/survivability, but ask yourself, is that really necessary? Why do you want to allow the player to level up at all, when balance needs to be maintained at all times? Of course you need to show the players that they are growing stronger as they play more and more which is what draws players to these kinds of game, but I'm sure it can be managed aesthetically.
Pick a game like L4D, or CS for PvP, the xp bar in these games (if there are any at all) dont affect the attributes of the players in any way (lets leave out the unlocks for a bit please). What makes a person with more xp better than the other? It doesn't, the metric in that case is just 'guessing' how experienced the player is (proportional to kills etc.) which is not always right because a person who has played more but is pathetic can have more xp than a pro.
My point is, PvP and the xp system can be detached from each other if you want, it all depends on how you want the xp bar to affect the game.
Hypothetical situation, let's say that hacking is not that big an issue (No pub servers, coop only, closed platform). The game is more like a shooter rather than an MMO, the collision detection and damage to enemies is quite a physical affair (speed,acceleration etc.) rather than a pre-calculated (lock-on target) attack mechanism. Would you still suggest a server-knows-all set up?
Its really bugging me here because its really tempting to have the clients do all the work because they're the ones that have to have all the information at all times no matter what. If I try to go for a server authoritative approach, I always end up having two copies of all the data being managed, sometimes even generated (item infos/effects/powers) on both the client and the server! Isn't this supposed to be bad design? Or is this the way to go?
I'm a 'Programming Guy' too, I do this like a hobby as well, but if you're serious about seeing your game in action, I suggest you should finalize your design doc and start working on it.
If you think what you wrote is not good and it needs to change because you thought of a better way to do something, don't. Stick with it, there's always another game to put those ideas in. Sure, it's important for the design to be perfect, but don't change it drastically every time a new idea comes to mind!