See here for more details.
After looking over this, it seems feasable enough. When a class parameter is supplied to ChangeLevel, when the level changes, the player's inventory is reset, and they are spawned as a new playerclass.
Since this is done at the start of the level, there shouldn't be a problem with messing up in-game actor data like radius, height, and special player properties, and since the feature would imply resetting inventory, there wouldn't be the problem of actor classes having the wrong weapons/armor/etc at map spawn, they'd just have what they default to as though they started a new game.
If one wants to restore the player's inventory between "morph"s, one would simply use ACS to give the items back, after using checkinventory to store the data in the previous map (this would obviously require global variables).
The only problem I could see is with travelling between levels in a hub, but in this case the mapper should take special care to do this in a situation where the player would not lose items like keys when they warp to the new level.
[ACS] Class parameter for ChangeLevel
Moderator: GZDoom Developers