Para responder a essa pergunta, talvez seja necessário diferenciar entre TCP, o protocolo independente de API e BSD Sockets, a API mais conhecida e amplamente adotada pela qual os aplicativos acessam os recursos das pilhas TCP de seus sistemas operacionais.
TCP, o protocolo, como você já observou, considera cada 4 tuplas (src ip, porta src, dst ip, dst port) como uma conexão separada. Altere qualquer um dos itens dessa 4-tupla e é uma conexão totalmente separada. Então, sim, TCP o protocolo pode manipular várias conexões de um único endereço IP de origem e porta de origem.
Se há ou não uma maneira fácil de acessar essa funcionalidade da venerável API do BSD Sockets, pode ser uma questão diferente.