Typically channels should have this implicitly as Matrix users are usually kicked if they cannot join a channel however we would like to add an optional safety net to preserve privacy. A Matrix room will not get messages from IRC while the membership for a room contains users who are not connected to IRC.
Basically, while we sync membership to IRC we will not bridge messages from IRC until all the IRC clients are joined to the network and channel. If a user fails to join either the network or a channel, they are kicked from the room. If the kick is not possible (after retries) then the bridge will warn in the room that the privacy could not be preserved and those users will be kicked.
Finally, this would be a feature that the IRC opers could opt out of if they wish by signalling to the bridge somehow that they do not wish to block messages based upon this (e.g. they've chosen to not bridge new matrix users on join for whatever reason).
(This is option 3 from https://github.com/matrix-org/matrix-appservice-irc/issues/212)
This could also be configurable per-room; if a given room doesn't care much about history privacy (because it's already publicly logged) then the chanop could disable it.
Most helpful comment
This could also be configurable per-room; if a given room doesn't care much about history privacy (because it's already publicly logged) then the chanop could disable it.