The player's level (that is, the actual number that represents the player's level that you see when you open your stats menu) has absolutely no effect on any stats. Health increases by a calculated amount every time you gain a level but the actual level number is not included in those calculations. Fatigue, encumbrance and magicka are all determined by your base stats.
Knowing this we can manipulate the player's level using the script command player.setlevel without affecting anything else on the player. I've done this before and it's worked exactly as expected.
What is affected by the player's level is the rest of the world. When stuff spawns, it's level, type, etc. is determined by the player's level. Most everyone should already know this as level scaling. Now, if we set up a script to constantly set the player's level to, say, 15, only stuff set to spawn around level 15 will spawn. Again, I've done this before and it's worked exactly as expected, although I did have to make sure to only run it AFTER the starter dungeon to avoid complications with character generation.
Of course having the entire world set at level 15 has it's limitations. For instance you'll never find glass or daedric armor and expert class alchemy apparatus is forever out of your reach. So the obvious solution is to periodically have the player's level change. But based on what?
At first I thought of using a random variable to change it up but the more I thought about it the more it seemed inefficient. It would work but whenever you revisited a location after a time it would be completely different. Could be good in some cases but it's awfully unpredictable. It would also cause problems in dungeons with multiple cells, where one cell could be level 1 and the next could be level 30.
So after a bit of scouring I came across this little gem of a script command: GetDistance. Apparently it works regardless of whether both objects are in the same cell, although with the player I'll have to make sure the calling object is a disabled creature or something. The idea is I can set the player's level based on the distance to one or several objects. Ideally there would be one object in each major city. The further the player is from a city, the higher his level goes, the higher the world levels with him. Getting each of these objects to work with each other might be a bit complicated. But that's the overall concept. I should even be able to set it up where the player actually sees his true level when he goes into the stats menu.