おおう、その書き方で出来ました。
インスタンス生成前にcubeの属性を変えておくわけでもなく、
GameObject型のcubeを使いまわしても駄目で、新たに宣言する必要が有ると。

しかし、どうしてこれで出来るのかわかりません。
そこで変数を宣言してもここで言えばStartが終わった時点でGameObjectのgoが破棄されてしまうと思うのですが。
これってunity特有の作法なのでしょうか、それともjavascriptの作用なのでしょうか。
インスタンスを作った時点で3D空間にオブジェクトが出来て、goはその属性を操作する一時的な変数とでも解釈すればよいのでしょうか。