シリーズ

 >> a: [x y z]
 == [x y z]
 >> b: a
 == [x y z]
 >> b: next b
 == [y z]
 >> a
 == [x y z]
 >> append a 1
 == [x y z 1]
 >> b
 == [y z 1]

ブロックは参照で保持され、append等で書き換えるとコピーオンライトなどはなされずに波及します。で、各変数は、ブロックへの参照とあわせて位置情報も持っていて、こちらは変数ごとに独立です。
nextで進めていってtail?がtrueを返したらおしまい。
ブロックについてはあまりやる気がないのでこれだけ。
do/nextもifなんかはがさっと実行してくれて継続には使えない気味だったし…。
一応継続の定義そのままに次に実行するものをブロックとして丸ごと返すようにしてdoを連発していれば真似事はできますが…。

 >> a: [print 1 [if true [ [print 2 [print 3] ] ] ] ]
 == [print 1 [if true [ [print 2 [print 3] ] ] ] ]
 >> set/any 'a do a
 1
 == [if true [ [print 2 [print 3] ] ] ]
 >> set/any 'a do a
 == [print 2 [print 3] ]
 >> set/any 'a do a
 2
 == [print 3]
 >> set/any 'a do a
 3

自動でこの形に変換できれば…とは考えましたが、ifなどに渡すブロックが、データなのかコードなのか判断つかないでしょうから駄目かな。
google:rebol+continuationで検索しても、Rebolは継続の無いLispです、みたいな記述が…。
そのようなわけで、コード=データの言語としても、インスタンスベースの言語としても、拍子抜け気味。ま、rebol301.exe、僅か263kで信じられないぐらい詰め込まれてますし…。(と、自分を納得させようとする)