Also LWIP pretty much needs an RTOS (there is a way around it but is complicated) and that is something else you need to port to a new CPU (not as hard as ETH though).
My interest in those Ethernet enabled chips is exactly that: Ethernet.
We make our own networking library with built-in TCP/IP and TLS 1.3 stacks, so don't care about LWIP and its issues.
Our stack does not require RTOS: it runs perfectly fine in a bare metal superloop, and in a RTOS task.
The reason Mongoose does not require RTOS is simple: our library provides a high-level event-based API for protocols like TCP, UDP, HTTP, MQTT, etc. Therefore we don't need socket layer, we simply bypass it.
And it is exactly the socket layer that needs RTOS support, because that's the way a blocking send()/recv() can be implemented. An RTOS is required for the "waiting" functionality, and a socket layer required for data buffering.
Bypassing a socket layer saves a whole lot. RTOS independence, performance, and memory.