Also why upstream smart batching is so important. If you only have 1 packet shovel it off. But maybe wait 1-2 micros and see if you can combine 10 packets (up to MTU) to decrease overall latency.
It depends some on what layer you're talking about. Nagle's algorithm makes a lot of sense in a lot of situations. But if you've got a complete packet that's ready to encapsulate in an ethernet frame and send over the wire, you only want to try for batching if you're actually hitting a CPU limit from interrupt frequency or something like that. Unless you're dealing with WiFi where extreme amounts of packet aggregation are necessary to get close to the theoretical throughput.