Here is a solution for the non-tail recursive variant of string-merge:
(define (string-merge str-list-1 str-list-2) (cond ((and (null? str-list-1) (not (null? str-list-2))) (string-append (car str-list-2) (string-merge '() (cdr str-list-2)))) ((and (not (null? str-list-1)) (null? str-list-2)) (string-append (car str-list-1) (string-merge (cdr str-list-1) '()))) ((and (null? str-list-1) (null? str-list-2)) "") (else (string-append (car str-list-1) (car str-list-2) (string-merge (cdr str-list-1) (cdr str-list-2))))))