Não ocorre para soquetes de aplicativos, a menos que sejam explicitamente ativados neles. Além disso, é claramente declarado no HOWTO TCP Keepalive ao qual você se referiu:
Remember that keepalive support, even if configured in the kernel, is not the default behavior in Linux. Programs must request keepalive control for their sockets using the setsockopt interface. There are relatively few programs implementing keepalive, but you can easily add keepalive support for most of them following the instructions explained later in this document.