It should be specified that it is an error to call set-box! with a number of values that is different than the number of values in the box being set. In other words, set-box! does not allocate memory.
Your extension to boxes reminds me of how multiple values are implemented in Gambit, with a “values object” which is in effect SRFI 195 boxes, in the sense that (box A B C) is Gambit’s (values A B C). For that reason I would like your SRFI to specify that it is allowed, but not required, that
(box X ...) is equivalent to (values X ...)
(unbox b) is equivalent to b
Marc