>>341
つまり、 1 -> Bar; のあとに、 Foo Bar 2; とかしたとき、
Foo Bar 2; が Foo 1 2;  という文に変換されちゃうってことですか。

これは結局、Barがいつ評価されるのかが、はっきり決まっていないのが
問題なんじゃないかと。
Fooというオブジェクトにメッセージを送るまえに、Barを言語側で
勝手に評価する規則だとすると、オブジェクト指向言語としては
成り立たないと思います。
だいいち、そういう仕様だと、
1 -> Bar;
自体が成り立たないでしょうね。この文で、Barを評価してしまうと
変数Barには、いつまでたっても1が代入されないし。

というわけで、メッセージは受け取ったオブジェクト側で責任をもって
評価する規則にしておけばいいような気もします。
Foo Bar hoge;
という文のとき、(Lisp風に言えば)シンボルBarをそのままシンボルとして
扱うのか、中身を取り出して使うのかは、レシーバー側の責任ということで。