In R3-Alpha, it is possible to append key/value pairs to objects via a block:
>> obj: make object! [a: 10]
== make object! [
a: 10
]
>> append obj [b: 20 c: 30]
== make object! [
a: 10
b: 20
c: 30
]
You can't do that in Rebol2, and Red did not carry it forward.
But in Ren-C, isotopes are not allowed in blocks. It's more powerful if there is an operation which extends the object via a block which gets evaluated... much as the block in MAKE OBJECT! is evaluated.
As a general rule, APPEND should certainly not be REDUCE-ing block arguments. So some other operation is needed
Red has an EXTEND operation, but it is "reserved for future use":
USAGE:
EXTEND obj spec
DESCRIPTION:
Extend an object or map value with list of key and value pairs.
EXTEND is a native! value.
ARGUMENTS:
obj [object! map!]
spec [block! hash! map!]
REFINEMENTS:
/case => Use case-sensitive comparison.
Given that it's not implemented, we don't know if that spec block is intended to be evaluated or not. Also, we'd assume EXTEND would create a new object (since their objects don't expand).
Anyway, APPEND to an OBJECT! is something that probably doesn't make sense.