>>328
: はただ単に行の先頭を表す文字です
: 〜 ; または ( 〜 ) を1つの文として、
全ての文が
  :[レシーバ] [メッセージ1] [メッセージ2] … [メッセージn];
となるようになってます

メッセージを受け取ったレシーバは、別なオブジェクトをレシーバとして再設定
(つまり関数)することが出来るので、
  :1 + 2 -> x;
の文では、
 1) レシーバを 1 として、まず + が送られる
 2) 関数 + 内にて次のメッセージが Pull され、結果の 3 が新しいレシーバになる
 3) 新しいレシーバ 3 に「ニックネームを付けるメッセージ ->」が送られる
 4) 手続き -> 内にて、次のメッセージが自分のニックネームであることをシステムに通知
という手順です
判り難くてすみません

>>329
利点なんか無いです
ただ暇だったから考えてみただけで、実装する気は今のところありません