Чтобы ответить на вторую часть вашего вопроса:
С функциональной точки зрения мое желание, изложенное выше, является именно
Я нуждаюсь. Есть ли какая-то причина с технической точки зрения, это было бы
плохая идея?
Вы можете обнаружить разницу между разорванным TCP-соединением и соединением, которое вам ничего не отправляет, написав ему (см. этот ответ ). Чтение ничего не может означать, что соединение разорвано или что вам ничего не отправляют. Тайм-ауты полезны для обнаружения (или форсирования) таких отключений, чтобы освободить ресурсы. (Вы также можете использовать TCP Keep-alive, чтобы обнаружить отключение, но эффект очень похож на тайм-аут.)
Если протокол, который вы планируете использовать, пишет достаточно регулярно со стороны, где вы хотите отключить тайм-ауты, это может не иметь значения для вас, в противном случае вы можете просто оказаться в ситуации, когда вы ожидаете, что что-то придет с другого конца навсегда (так как он мог внезапно отключиться).