Why (or why not) have UNSET! in Rebol-like Languages

On gitter.im's red/red/welcome, Nenad Rakocevic said::

"Redbol languages are based on denotational semantics, where the meaning of every expression needs to have a representation in the language itself. Every expression needs to return a value. Without unset! there would be a hole in the language, several fundamental semantic rules would be collapsing, e.g. reduce [1 print ""] => [1] (reducing 2 expressions would return 1 expression)."

I suppose he hasn't read Godel, Escher, Bach.

The fact of the matter is that there is no such thing as a "complete" system. All we do is push complexity around in order to shape the territory to become suitable for our purposes.

Somehow, the idea that reduce [1 print ""] could be an error is by its definition worse than having a block that holds a "unset value".

It's strange how uneducated minds work.