Sua compreensão parece correta; muitos protocolos comuns podem, de alguma maneira, ser sintonizados em outros protocolos.
Mas nem todos os protocolos são adequados para serem túneis - por exemplo, HTTP padrão só pode transportar pares de solicitação-resposta, mas não existe tal coisa como um "pedido TCP" ou "pedido IP" ... Enquanto isso, outros protocolos são projetados especificamente para tais propósitos (SSHv2, SOCKS, GRE).