schemeに単純にラベル付いたらいいと思うんですが、どうすか。
特にテーブルジャンプ系が弱いと思うので。
gotoの是非は議論しないものとします。
ここではlabelは構文で、gotoは関数ってことにしてます。

(let ((i 0)(v (label->vector 'a 'b 'c)))
 (goto (vector-ref v i))
(label a)
 (set! i 1)
 (goto (vector-ref v i))
(label b)
 (set! i 2)
 (goto (vector-ref v i))
(label c)
 (set! i 0)
 (goto (vector-ref v i)))