That's...honestly quite impressive, actually. Is there a way to make a mod (coremod/jarmod, perhaps?) or a change to Forge that would overhaul Minecraft to do just that? I imagine it'd be a nightmare to get other mods compatible, but still...
I'm sure you could; it'd require a rather large overhaul of some of the core Minecraft code, but the Forge team has shown themselves as being more than capable of altering such things. It could even be done in a way that's "under the hood," for the most part, meaning that mod authors would, ideally, only need to change certain parts of their code; likely the PreInit phase where IDs and such are assigned. Basically, here's how it works currently:
Code:
ironChestBlock = new BlockIronChest(blockId);
GameRegistry.registerBlock(ironChestBlock, ItemIronChest.class, "BlockIronChest");
This, of course, being taken from the Iron Chests mod for 1.5.2. (All credit goes to cpw!) The system I envision would have two constructors for block types, a parameterless (default) constructor, and the normal one that's already there, that takes the ID as its sole argument. The latter would be simply for compatibility, and could still throw ID mismatch errors. However, the former would, in theory at least, allow Forge to auto-assign the next available ID to the block, updating the necessary parts of Minecraft itself as needed.
Again, from my (admittedly somewhat limited) knowledge of Minecraft's working, it
is possible. Though, it would probably be a rather big overhaul, since my way would turn the necessary objects from simple arrays to ArrayList or HashMap objects, whichever is the most intuitive solution, and altering the code as needed, as well as adding a few methods to make this new facility run smoother and be easier to work with in the future, should an update come along or somesuch.