mac accress in Ethernet.begin??

The newer Ethernet shields include the mac address. I assume (probably bad) that address is flashed in the shield. Just curious why it's necessary to include the mac address in the begin command with these newer shields. Is it just that the library hasn't caught up to the latest HW?

If you have multiple devices running the same code, it would be "nice" if you didn't have to rebuild the code for each device just to change the mac address in the begin command.

Bad assumption. There is no mac address flashed into the shield, even the new ones. It will use whatever mac address you send in the Ethernet.begin() call.