このままでもサンプルが変換できる程度の作ってみた。
こんな感じでよいのかな?
もうちょっとちゃんとしたやつは時間がないから今は書けん。
このままでは(lamda arg ...)とか(lamda (arg . rest) ...)とかはだめだよん。

(define quotify-rest
 (lambda (ids vars expr)
  (if (pair? expr)
    (cons (quotify-head ids vars (car expr))
       (quotify-rest ids vars (cdr expr)))
    expr)))

(define quotify-head
 (lambda (ids vars expr)
  (if (pair? expr)
    (cond
     ((eq? (car expr) 'lambda)
      (list 'lambda (cadr expr) (quotify-head ids (append (cadr expr) vars) (caddr expr))))
     (else (cons (quotify-head ids vars (car expr))
           (quotify-rest ids vars (cdr expr)))))
    (if (and (memq expr ids) (not (memq expr vars)))
      (list 'unquote expr)
      expr))))

(define quotify
 (lambda (ids expr)
  (list 'quasiquote (quotify-head ids '() expr))))