I think it's fine to raise an error in this case. We can't predefine an alist of
all possible identities, and if you add an identity argument there's no useful
difference between reduce and fold.
I agree. In addition, it would break the symmetry between array-reduce and SRFI 1 reduce. When I started writing all the data structure SRFIs, I decided to standardize on fold, exactly because it handles zero-length sequences cleanly, but I have no objections to providing reduce as well.