Historically one might have asked why ELSE doesn't think falseness is something worth reacting to:
>> 1 = 2 else [print "Why not print?"]
Why not print? ; seems not so bad, right?
The idea was panned, because #[false]
was a value and ELSE's main job was to react to the situation of a branching construct that didn't produce a value:
>> math-broken: if 1 = 1 [false] else [true]
== #[false] ; if this were #[true], math seems broken
But now, the actual falsey ~false~
state is isotopic. And some years of struggle with the parallel problem of what to do with branches that returned "non-values" bore curious fruit: a box that could hold a "non-value" like a null.
>> if false [null]
== ~null~ ; isotope
^-- there is no result
>> if true [null]
== ~[~null~]~ ; isotope
^-- there is a result and it is null
Isotopic blocks containing one element will decay to that one element in most situations. But ELSE is sensitive to the difference via a ^META parameter. If someone has gone through the effort to box up a null or void vs leave it as a plain isotope, the ELSE assumes it's a meaningful result and should pass it on. And conditional expressions know to do this; they box up nulls and voids if they are produced by executing branches.
The same technique could work for false.
>> if 1 = 1 [false]
== ~[~false~]~ ; isotope
>> if 1 = 1 [false] else [true]
== ~[~false~]~ ; isotope
>> math-broken: if 1 = 1 [false] else [true]
== ~false~ ; isotope
It's barely any additional work for conditionals to do on top of what they're doing already. Although it can result in branches producing false to cost a small bit more than they do today (I wouldn't worry about it, these single element boxes could be optimized if it was a problem)
But I don't know how useful it would actually be. Just writing down the observation.