Hmm. I think it's confusing to use a configuration key for Hadoop RPC to configure something that isn't Hadoop RPC. We have tons of keys named with ipc and all of them relate to Hadoop RPC, not to DataTransferProtocol. ipc.client.connect.max.retries, ipc.server.listen.queue.size, ipc.client.connect.timeout, and so forth.
There are valid cases where you might want a different configuration for RPC versus datatransferprotocol. For example, conservative users might also want to avoid turning on TCP_NODELAY for DataTransferProtocol since it is a new feature, and not as well tested as doing what we do currently. But since we have TCP_NODELAY on for RPC, they might want to keep that on.
I agree that in the long term, TCP_NODELAY should be used for both. But that's an argument for removing the configuration altogether, not for making it do something other than what it's named.