> In what sense do you think that potential problems arise?
When code is only tested one one implementation, which deterministically
returns e.g. the last value.
> An expression like "(set! <identifier> <expression>)" could, in
> principle, return the value, which is assigned to the identifier.
Common Lisp's setf and setq do that, per the spec.
> From a theoretical point of view, the only convincing stricter
> semantics would be to return no values (as per "(values)").
(values) would be a decent choice. (Optimizers can omit the return value
where it's not used, so there ought not to be a performance penalty for
specifying a value.)
More generally, RnRS has a bunch of places where the return value is
undefined. So perhaps a universal convention for what to do about
undefined returns would be more productive than addressing the problem
in only one SRFI.