A MAC address is needed to bootstrap IP, even if non-routable - and because we don't want to bootstrap MAC addresses, we just assign them statically. From the very beginning (oversimplifying a bit, but I digress), a MAC has really just been the key in a hashed map from MAC to switch port.
You _could_ design a system where MAC addresses were always randomized, but this technology evolved at a time where processing power and the bandwidth of your switches likely might have struggled with the additional load.
If we were designing a system from scratch it would probably make sense for everything to have hierarchical, switch-local identities that were cheap to allocate and check and put a bit more extra routing storage in the switch chips to efficiently route these.
A MAC address is needed to bootstrap IP, even if non-routable - and because we don't want to bootstrap MAC addresses, we just assign them statically. From the very beginning (oversimplifying a bit, but I digress), a MAC has really just been the key in a hashed map from MAC to switch port.
You _could_ design a system where MAC addresses were always randomized, but this technology evolved at a time where processing power and the bandwidth of your switches likely might have struggled with the additional load.
If we were designing a system from scratch it would probably make sense for everything to have hierarchical, switch-local identities that were cheap to allocate and check and put a bit more extra routing storage in the switch chips to efficiently route these.