返すため自動的にループを抜けます。それぞれの性質は全く異なり、それに伴い使い所も違ったものになるでしょう。IOがインタフェースを満たすように設計された結果、バッファを扱う各関数は抽象化したコードになるのだと思います。みんなのGo言語Goでの開発から周辺ツールの紹介まで幅広く書かれています。一つ一つのセクションは短く区切られているので読みやすいですが、内容的に難しい箇所もあるので必要な箇所を繰り返し読むことを推奨します。個人的にはreflectの章が難しかったので、ライブラリとか作る機会がにあったら並行しながら読み返したいです。