Should Quasiform Parameters Accept as the Plain Form?

I'm very confident of the goodness of "isotopic actions".

Not being able to put them in blocks gives us the nice, mechanical invariant of being able to manipulate blocks without inadvertently running functions in the process. It opens the doors to other guardrails against isotopes being in variables when it might surprise you.

But what happens when you write something like SPECIALIZE, with a spec that looks something like:

//  specialize: native [
//  {Create a new action through partial or full specialization of another}
//      return: [~action!~]  ; ~ notation since an isotopic action is returned
//      action "Function whose parameters will be set to fixed values"
//          [action!]
//      def "Definition for FRAME! fields for args and refinements"
//          [block!]
//  ]

Should SPECIALIZE tolerate being passed an isotopic action, maybe with a spec that looks like:

return: [~action!~]
action "Function whose parameters will be set to fixed values"
    [action! ~action!~]
def "Definition for FRAME! fields for args and refinements"

This would lead to complexity inside most function, because now if it references the action variable it might run. And this lack of automatic canonization to the inert form creates hassles for both usermode and native code alike.

Another thing is that the meaning of isotopic actions is potentially very different from that of a plain action. For instance: find block :even? might know that since blocks cannot contain isotopes, it should interpret it as a function to call to test the items in the block for evenness.

So this led me to a bit of a thought...

What if QUASI!-forms typechecked as the plain form?

The idea is that there's an initial type check done. If that check fails and it's a quasiform, it is tested again as its plain form. If that passes, the plain form is received.

Producing a quasiform of an action from an isotope is easy, just use a meta operation. So ^append instead of :append. All meta forms are inert, so code using the meta is less likely to do wild things.

To me, this feels like a safer exception than letting isotopes pass for plain forms. Due to their alien-ness, an isotopic form could intend something quite far from a mechanical brick in a block. But what a quasiform has in common with a plain form is that both are inert.

Also, even the name "quasi" suggests a possibly loose relationship. It carries the same payload as the plain form. What if this were legal:

>> add first [~1~] first [~2~]
== 3

I'm suggesting a general-enough mechanism that would work... so long as ADD didn't widen its net to taking actual ANY-VALUE! (which would indicate it had an actual meaning that applied to quasiforms).

This may not be the most brilliant thought to ever be thunk. But in this more complex world there need to be succinct answers. We don't want to have to write things like apply concretize :append [...], and I feel like glossing over the fact that something is an isotope is a worse move than glossing over that something is a quasiform.

I even may like apply ^append [...] a bit more than apply :append [...] for looks, too.