This is tangential, but can be a common pitfall so I just note it.

On Tue, Sep 10, 2019 at 8:22 AM Linus Björnstam <xxxxxx@veryfast.biz> wrote:
Considering the amount of schemes out there that use reverse! at the end of (map ...) I want to allow for it,

If you mean the actual implementation of map, such as
  (define (map proc lis)
    (let loop ((lis lis) (rs '()))
       (if (null? lis)
        (reverse! rs)
        (loop (cdr lis) (cons (proc (car lis)) rs)))))
 
then it is not R[67]RS comformant.   R[67]RS map requires restarting traversal by captured continuation won't affect the previously returned result so you can't modify intermediate results.

If you meant the context of transducers, the restart-safe property is up to the specification, so using reverse! is your choice.