If you are going to allow windows with different communicators, then you might as well use separate fence calls. Otherwise, you are introducing a brand-new kind of object - one that involves the union of non-disjoint groups of processes. I don’t think this is a good idea.