Small editorial error first - entries from list-accumulator to vector-accumulator! are repeated twice.
Now, it is not specified what will happen if values are passed to an accumulator which has already been finalized (got eof). Possible options:
1. Make it an error.
2. Only allows eof to be passed. Every time it returns the same finalized values, which is cached (so finalizer is only called at most once). It is an error it other values are passed. (Or may be we can say other values are ignored.)
3. Allows to accumulate values even once it is finalized. Passing eof is effectively an operation to retrieve accumulated value at that moment, but the caller can still keep accumulating values afterwards.
We could leave it unspecified to let implementation choose, but it will be awfully confusing if the behavior differs among accumulators, and such situation is inevitable if third-party library provides more accumulators.
I'm inclined to say #2. Since there's no way to know if an accumulator has already been finalized or not unless you've seen what has been passed to it, it'll be difficult to passing around accumulators and be absolutely sure you pass eof only once. #3 might be handy for some cases but might be too much to enforce uniformly.