current_team という名前を付けて、特別な team を has_many: teams とは別に定義したい、ということと理解しました。

user が所属する全ての team を取得する場合はどうなりますか？

user.teams + user.current_team ですか？
もしくは、
user.teams の中に user.current_team も含まれていますか？

前者は分かりづらいですね。user.teams という method の名前なのに、全ての team を取得できません。これは良く無いです。
後者の場合、user.teams の中に current_team が含まれるのであれば、user_team モデルにその情報を持たせれば良いのでは無いですか？

つまり、current_team という名前を付けてはいますが、実際は belongs_to: :team と意味は同じで、だとすると、has_many: :team と別に定義していることとの役割が明確で無いと思います。