Wait... If you have it in form of 'packages' that the player uses to customize the experience, what about multiplayer compatibility? Wouldn't they have to have the same specific packages enabled to play with each other, instead of just using a set version?
Yes, but that happens often with modded servers, for example, and it's not like it would be hard to restart the game with the proper packages enabled. The game would even offer to restart with the proper packages enabled if you try to connect to such a server. As far as mods are concerned, well, this already happens.
But as far as vanilla is concerned, if you have a custom experience for each player, then it would still be really hard to get together on massive multiplayer servers. I personally like to switch to different ones a lot of the time, so if one has a bunch of different packages set to 'on' that the other has 'off' then I'd have to set them differently every time I wanted to switch from one to the other. Should I just choose one server?
Mojang is implementing "data packs" in 1.13, which combine all of the commands (functions), structure files, custom recipes, loot tables, etc, etc that currently require separate files (which can already be bundled with a world download) - which will automatically be downloaded and installed when you join a server, no need to even restart the game (which is rather bad for player experience and there is no reason why it can't dynamically change itself while running, especially when no actual code is being modified - this is exactly how resource packs already work). Any custom packs that the player uses in singleplayer are overridden (or should be; you can prevent a server from installing its own resource pack, which can break custom item/block models and the like but data packs should be mandatory since they change the game logic itself, not just how something appears).