I know hubs are a thing of the past, but I'd like to know if my reasoning is correct and accurately describes how things worked 30+ years ago. Assume we have a classic two-port bridge, a hub connected to one port of the bridge, and at least two hosts connected to the hub. Initially, the bridge has an empty MAC table. When host A sends a frame with a destination MAC address of host B (both connected to the same hub), the frame reaches the hub which propagates the frame through all its ports other than the one it was received on. As a consequence, the frame reaches all hosts connected to the hub and also the bridge port to which the hub is connected. The bridge adds a mapping to its MAC table between the port to which the hub is attached and the source MAC address of the host A. Next, because the bridge doesn't know the egress port for the host B (it has no way of knowing hosts A and B are behind a common hub) it's forced to flood its other port with the frame directed to host B.
The problem I see with this approach emerges when one of the hosts behind the hub (say, B) keeps receiving frames from other hosts connected to the same hub, but it never sends any frames itself. Consequently, the bridge never sees any traffic from B and has no chance to associate its port with B's source MAC address which means all the traffic directed to B needlessly passes to the other side of the bridge every time which kind of defeats the purpose of the bridge as a traffic filtering device. Am I right that the only way for the bridge to start filtering traffic between its ports in this case is that it receives at least one frame from each host behind the hub? This will enable the bridge to map source MAC addresses of all the hosts behind the hub to its ingress port. Now, when a new frame gets sent from any host behind the hub, it reaches the bridge, which then consults its MAC table and learns that the destination MAC address is associated with the ingress port. Because the destination MAC address has been found in the table, the bridge won't flood its other port. Because the egress port turns out to be the ingress port, the frame won't be sent back and will get dropped instead as it should.
Is my description right? If it is, wasn't this kind of behaviour problematic, especially with multi-port hubs and/or daisy-chained hubs on both ends of a bridge and unequal distribution of traffic between hosts? Unless there's something very wrong with my reasoning, for such configurations a bridge started to act as a full-fledged bridge (i.e. filtered traffic between its ports) only after it saw at least one frame from every host behind every hub. Was this initial traffic somehow forced or was there simply an assumption that eventually every host would send something and nobody cared when exactly this would happen?