連投失礼します。
>言語構文上returnという単語を用いているだけなのです。
この部分、yield は Current で値を返していると考えたほうが自然に理解できる構文だと思います。
http://d.hatena.ne.jp/siokoshou/20070829#p1
kinabaさんの言葉ですが、yield は「内部イテレータ風に外部イテレータを書ける構文」です。
内部イテレータの
for ( int i = 0; i < 10; i++ )
func( i );
が
for ( int i = 0; i < 10; i++ )
yield return func( i );
と外部イテレータに変身してしまうと。
それはそれとして。状態を表すクラスを用意してそれを返すのはどうでしょう?