Não, não é uma metáfora particularmente boa, mas funciona (se você apertar os olhos ... e virar a cabeça ... e ignorar vários problemas ...)
O HTTP é um protocolo, mas o TCP é outro protocolo também. Os protocolos são simplesmente regras para conversar entre si. Nesse sentido, é injusto chamar uma 'mangueira' e outra 'água', implicando que elas têm dois empregos diferentes.
Acho que conhecer um pouco sobre o modelo OSI seria bom para você. link
Essencialmente HTTP é um conjunto de regras entre aplicativos para se comunicarem entre si. Ele define regras para navegadores da web para falar com servidores etc. O TCP é um conjunto de regras para transmissão e controle de ponta a ponta. Ele lida com conexão entre pontos finais e confiabilidade. Mas há outros protocolos envolvidos, como o que ocorre em uma camada física, camada de rede, etc.
Se eu fosse forçado a usar uma analogia, eu colocaria mais assim. Edifício hipotético onde ninguém pode sair do quarto, mas precisa conversar um com o outro. Existe um protocolo que pode se comunicar entre pessoas (digamos, escrever notas). Se eu quiser enviá-lo para a próxima sala, talvez precise colocá-lo em um envelope e enviá-lo de acordo com as regras de correspondência do escritório (ou seja, endereçá-lo ao número da sala). Se eu quisesse enviá-lo para um prédio diferente, precisaria enviá-lo pelo correio da cidade (ou seja, ter o endereço do prédio).
De repente, se eu quiser falar com alguém do outro lado da cidade, eu preciso escrever uma nota (protocolo 1), colocar em um envelope endereçado ao meu andar térreo, onde o mensageiro pega (protocolo 2) e leve o mensageiro a atravessar a cidade até um certo prédio (protocolo 3). Na outra extremidade, a pessoa no térreo precisaria desembalar a caixa de courier e retirar o envelope (de volta ao protocolo 2), entregá-lo no andar certo e no número da sala que abre o envelope e recupera a nota (de volta ao protocolo). 1).
Esse "subir e descer camadas" é o que ocorre no modelo OSI.