A segment built like this:

Is going to be fundamentally different than one built like this:

The first segment rule applies to the entire 3 page sequence; the second segment rule, the "Only Before" is only for two of the pages in the sequence.
In the first rule, the Only Before Sequence applies to the entire sequence, meaning you should get data from Before Page A (but not including Page A (correction) and this will include Page A)
In the second rule, the Only Before Sequence applies to only a portion of the sequence, meaning you should get data before Page B (it should include Page A in the returned data AND Page B. since A is not part of the sub-container where the rule is being applied, (correction) and Page B is the first page in the "Before Sequence)
(correction)
In both cases, Page A and B are part of the sequence, but where you are applying the "Only Before" or "Only After" will determine whether Page B is part of the "included" data or not (since you are using a loose "Then" which means that sequences of Page A > Page D > Page B > Page E > Page C are going to meet the criteria....
In both case, Page E and Page C should not be included, but in the second case, where the Only Before is applied against the sub-set of Page B > Page C; Page A, Page D, and Page B will be returned in your data set.