When the report speaks of newly allocated strings (vectors, bytevectors), 6.3.5 explains that this means ones containing newly allocated locations. However, empty strings (vectors, bytevectors) have no locations, so an implementation is free to make all of them EQ? (within the same type, that is) or not, as it sees fit. The report should say so.
TODO: add stats on what various implementations actually do.
Closing this ticket, because the necessary information appears at eqv?.
Most of the 40 Schemes create newly allocated strings and vectors even when empty. Here are the exceptions:
All empty strings are identical: Shoe, XLisp.
All empty vectors are identical: MIT, Chibi, Ikarus (but not Vicare).
Both: Chez, Larceny, Ypsilon, Elk, UMB, Owl Lisp (which lacks mutability, so all strings/vectors with identical content are eqv?).