After Stepping Away And Coming Back, I See It Clearly
TRASH! Should Be Neither Truthy Nor Falsey
The reason is, that TRASH! is what you get when you haven't defined a return result for your function yet. You haven't committed it to "vanishing" semantics with a VOID!. You haven't committed to NULL. You just wrote the function as a PROC, or a FUNC with return: [trash!]
Effectively, you have not made a contract with your callers yet. You haven't promised you'll never return anything.
The very pleasing idea we now have is that ~ is quasiform VOID!, not TRASH!
So the assignment is thrown out by the ANY.