boost::reference_wrapperってなんのためにあるの?

template <class T> void func(T obj);

これに参照を渡せるようにしたいから有るって聞いたんだけど

template <class T> T & ref(T & r) { return r; }
func(ref(obj));

こうしてもfunc<T &>が呼ばれるからいちいちreference_wrapperにしなくてもいいと思うんだけど…