What I find curious is that, when I remove the actual instruction that causes the software reset in the ePHY interrupt routine, all tasks seem to stop working when the interrupt routine is called.
It looks to me as if the routine was originally written to re-initialise the ePHY when the link got broken, but because of a problem with the tasks no longer working after the interrupt was called, this re-initialisation is conditionally compiled out and replaced by a soft reset.
Anyway, that's just what it appears like to me...