リファクタリングするとこう。
(define (foo)
(begin
(print "foo-start")
(let/cc k (set! foo k)
(bar))
(print "foo-end")
(exit)))
(define (bar)
(begin
(print "bar-start")
(let/cc k (set! bar k)
(foo))
(print "bar-end")
(exit)))
(let/cc k (set! exit k)
(foo))
gosh> foo-start
bar-start
foo-end
すみませんでした。リファクタリングって言ってみたかっただけです。