これは内部のフラグ管理か何かが完全にミスってるみたいようですね。
イベントの部分に色々と書くと不具合を誘発しやすいので、
基本的に関数を別途定義してそちらに投げるべき、ですね。
確か他にもこんな例(イベントで書くと不具合)があった気がします。
ということで、ひとまずコーディング規約に追加しておきました:
[イベント構文の中で複雑なコードを書かない。 - コーディング規約]
http://nadesi.com/wiki/index.php?U%20D%2F%CA%B8%CB%A1%A1%A6%BB%C5%CD%CD%2F%A5%B3%A1%BC%A5%C7%A5%A3%A5%F3%A5%B0%B5%AC%CC%F3#oc66e389
結構ミスリーディングなので優先度は高で問題ないと思います。
----
ちなみに、今回の再現例だと、更に以下のように最小化できますね:
抜ける
2回
回数を表示 //表示されない(予約された「抜ける」が発動?)
3回
回数を表示
ただ、上のコーディング規約のページに書いたような、イベント構文内で
ごちゃごちゃとするコードを書くと、やっぱり上手く行かないので、
イベント構文固有のバグがあるのは間違いないですね。
イベントテストは
3回
回数を表示。
抜ける。
-回数*2を表示。
イベントテストする。