Flow Control et Congestion Control sont 2 choses distincts que certains mélangent parfois...
Flow Control: garantir de ne pas surcharger le récepteur, en gros envoyer les paquets au bon rythme pour que le receveur puisse les traiter. C'est une coopération entre l'émetteur et le récepteur via un échange d'informations ajoutées aux paquets du protocole TCP.
Congestion Control: empêcher de congestionner les liens et garantir a tout le monde du débit. C'est un algorithme uniquement coté émetteur donc par nature "en dehors" du protocole TCP lui meme (meme si les normes imposent que les clients TCP utilisent un algo).
Ces notions et mécanismes ne sont pas spécifiques a TCP.
Quelque soit le protocol qu'on utilise au dessus d'un lien qui peut saturer ou perdre des paquets, il faut un algo de ce genre. Donc QUIC par exemple a aussi besoin d'un algo de contrôle et les memes algos qu'on utilise avec TCP peuvent s'utiliser avec QUIC.
Dans un environnement maitrisé ou cas particulier on peut donc utiliser TCP sans algo de congestion. Par exemple sur un réseau dont on sait que ne le saturera jamais (ou TCP over TCP meme si ce n'est pas une bonne idée).