I'm just learning networking and subnetting so I might be missing something, but from what I understand: why not have one IP address just for networks with all 32 bits being the Network ID, and a second IP address for local networks to use and they can use whatever custom protocol they want for their network with practically unlimited (2^32) subnetworks or hosts or sum of each, or whatever custom things they invent with their protocol. And it should also solve the IP address shortage.
The answer is, we HAVE done something akin to what you propose, but we went even bigger.
Your proposal effectively increases the address space from 32 bits to 64 bits.
We decided to go all the way to 128 bits. We called our solution "IPv6".
(Edited to remove my previous claim of IPv6 not having an inflexible boundary in the middle, because really, the fact that the lower 64 bits are always the host part of the address is fairly inflexible.)