Seems like the "value behaviour" is something that could be implemented in [array define] with a new flag, right?
Correct me if I'm wrong, but the [array] objects already have [value] like behavior, in that you can have multiple objects referencing the same array. The difference is that with [value], the reference is implicit while with [array] it is explicit (ie. [array
define]).
The only thing a flag could do would be to tell [array define] to accept the first instance of a particular argument and reject the rest. But this would lead to a lot of confusion since you could have lots of empty [array define]'s scattered around the place.
The best solution is surely to put the array in a parent patch of the abstraction. If you don't mind putting it there yourself, you can do as Ingo suggested. If you want it to happen automatically, then there are neat dynamic patching solutions available.