It's uncommon to use expressions that evaluate to branches passed to conditionals. And when you do use one, you probably don't mind putting it in a GROUP! (especially considering that 99% of the time in the far more common cases you were willing to put it in a BLOCK!).
So Ren-C now uses that fact--plus generalized quoting--to allow for a briefer and faster way to evaluate to literals in your conditionals:
>> if okay '[block as data]
== [block as data]
Simply pass in a QUOTED! item of any kind, and that item will be what a branch evaluates to. It will be one less level of quoting than what you pass in:
>> if okay '<tag>
== <tag>
Previous attempts to get something like this used an /ONLY refinement. But this lets you mix and match in the same operator, as opposed to switching the operator into a "mode":
>> either okay '[1 + 2] [1 + 2]
== [1 + 2]
>> either null '[1 + 2] [1 + 2]
== 3
It Solves Some Problems for CASE
Historically, CASE was more lax in accepting types than the corresponding IFs would be:
>> case [1 = 1 <foo>]
== <foo>
It would allow the by-products of arbitrary evaluation to be used:
>> word: <foo>
>> case [1 = 1 word]
== <foo>
Sometimes this resulted in double-evaluation:
>> word: [print "surprise"]
>> case [1 = 1 word]
surprise
== true
The dodgy nature of this "may be a double evaluation, may be not" with no way to tell at source level raised some concerns, which are laid out in the "backpedaling on non-block branches" post.
The combination of soft literals and generalized quoting lets the same patterns that work for IF work in CASE. It lowers the risks in a legible way:
>> case [1 = 1 '<foo>]
== <foo>
It's Faster and More Efficient
Quoting is done with a byte in cells. So you can count up to 125 levels of quoting without really costing anything. (If you're wondering why not 255 levels, you need Quasi/Antiforms and the Dual state... read about LIFT_BYTE if you are curious)
So '[x] costs less storage (and has better locality with the surrounding cells) than [[x]].
Outside of the reduced storage, it's also lighter on the evaluator, because it doesn't have to push an evaluator frame to run the block!
Quasiforms Make Their Antiforms, Too!
For instance, you can make a SPLICE!
>> append [a b c] if 1 = 1 ~[d e]~
== [a b c d e]
>> append [a b c] if 1 = 2 ~[d e]~
== \~null~\ ; antiform
>> append [a b c] when 1 = 2 ~[d e]~
== [a b c] ; just pointing out the when nuance