> beforeで変数用意するとインスタンス変数にしなきゃいけなくて、
> 無駄にスコープが広いし、eachでやると、使っても使わなくてもインスタンスが出来るので、

そやねえ。これは同感。
ただ前提の認識がちょっと違う気がした。

> こういう事前準備は本来beforeでやるべきで

今回のは単純にメソッドの引数を作っているだけで、これはbeforeでやる処理ではないんでない？
beforeでやるのは環境変数の変更とか外部リソースの作成/削除とか、そういう系かなと思う。