Thanks all for your input.
Signal integrity has been raised a number of times now, which is a valid concern. I have other SPI interfaces in use elsewhere on the board, which have been tested at 50MHz with no issues. I don't expect there to be any issues with signal integrity if I were to use SPI for this particular interface, as I'll pay the same very close attention to routing and ensuring all best-practise SI considerations are followed.
Having said that, I've done some further reading overnight, and am investigating the raw ethernet frame approach a little more closely. Both PHYs support auto-negotiation by default, so a 100BASE-TX full-duplex link should automatically be established. This should mean I don't need a PHY driver, but it has been suggested it might still be a good idea to have a light-weight PHY driver to monitor the link status, to know when the link has been established, etc.
I'm still not entirely clear on the driver for the raw ethernet frame. I suppose I can start with the TCP/IP stack I already have, that currently works, and work backwards from the point of data being sent out on the wire.