I think it can be useful when the TCP connection is going through NAT which may drop the rule and stop passing packets after idling, no?
Routing is defined as shuffling packets where they need to go unmolested - without messing with the address or port fields. It's specced in the IP RFC's. If you're mangling the traffic, you're violating router requirements.
Nearly all bitcoin pools utilize TCP keepalive to maintain connections with miners.
These are systems in which performance and DoS resistance are paramount.
I would guess that makes them identifiable?