Discrepancy on legality of the consequent

I found a related example on Pg 41 in empty.pdf shared in empty-sequence-in-systemverilog

a |-> b[*0:1] ##0 c; // is equivalent to  
a |-> (b[*0] ##0 c) or (b[*1] ##0 c); // is equivalent to 
a |-> 0 or (b[*1] ##0 c); // is equivalent to 
a |-> b[*1] ##0 c; 

The above consequent is considered legal ( although a sub-seq. admits “No match” ) as it ::
(1) Doesn’t admit any empty match
(2) Admits non-empty match

On the same note, sub-sequence ((count == 0) ##0 (seq[*0] ##0 seq3)) in edalink
is equivalent to ( seq_expr ##0 (1'b0) ) i.e “No Match” ( 1’b0 )