Note that I haven't yet figured out how to reset the MAC on the processor without requiring a system reset. (See and trace through EthernetClass::end() in EthernetClass.cpp -> enet_deinit() in lwip_driver.c -> driver_deinit() in driver_teensy41.c.) You'll find this note:
C++:
FLASHMEM void driver_deinit(void) {
// Something about stopping Ethernet and the PHY kills performance if Ethernet
// is restarted after calling end(), so gate the following two blocks with a
// macro for now