Windowsフォームアプリケーションのプログラムの構成の仕方について、意見をください

「レジストリから値を取得する」
.NETのRegistryクラスのインスタンス作ってキーを渡してやれば取得できる

「データベースに接続してクエリを実行する」
.NETのSqlConnection、SqlCommand、SqlDataReader等のクラスの
インスタンス作って接続文字列やSQL文字列を渡してやれば実行できるしデータも取得できる

私は既にRegistryやConnection等というクラスがあるから、
必要なときにフォームイベント上で直接インスタンス作ればいいだけだと思っています
(キーやSQL等の文字列は、定数であったりXMLからMy.Settingで読んだりする)

しかし、会う人会う人みんな、わざわざ「clsSystemInfo」(INIやXMLを読み書き)、
「clsRegistryAccess」(レジストリを読み書き)、「clsDBAccess」(データベース接続読み書き)
等々、大きく機能を括ってひとつのクラスを作っています

また、フォームのイベントすらひとつのクラスにする人もいます
Form1.vbはフォームの外観だけにして、clsForm1.vbを別に作ってロジックを書き、
例えば「Form1_Button1_ClickイベントプロシージャからclsForm1_B1Clickメソッドを実行」
みたいな構成をしています(clsForm1がJavaでいうサーブレットのようなイメージ?)

私の考えを伝えると、こう言われます
「いろんなプロシージャに同じ宣言やコードがわんさと増えるじゃないか」
「フォームのコードが肥大化して可読性が損なわれるじゃないか」
機能を括ったクラスでもインスタンス作る必要があるし、やることは同じでは?
コードを2ファイルに分けただけで肥大した中身は同じなのでは?
議論しても、あまり納得のいく結論に達したことがありません

私も.NETの勉強をはじめて1年も経っていない素人で、自信はないのですが
ずっと違和感を感じながらコードを書いています
みなさんはどう思われるでしょうか?