何が間違っているのか

まず、システム設計の例えに犬猫やら動物やらを例として提示する時点で勘違いしてるんですよ(笑)
オブジェクト指向の例として犬猫はありなのですが、それをシステムにあてはめればObjectクラスの実装方式の違いレベルでしょ(笑)
システム世界では動物のようにUsableではないオブジェクトで考えてはいけません。なぜならシステム自体はすべからくUsableなものだからです。

だから例えるなら全て道具で例えなければならない。
その時点で、もう根本的なTreeの分岐が起きているんですよ。

それを概念論の動物やら植物やらって所で理解が止まってる人達は、全てオブジェクト指向が解ってない。
オブジェクト指向が素晴らしい点は、全てのプログラムをパーツに分化させ、工業製品と同じように生産できるようにする、という点です。
その点を理解していれば、「これはオブジェクト指向言語なので、「お安く」出来ますよ」という営業にいたる筈です。

なぜでしょうか。

工業生産されたツールを掻き集めて作るから、コストダウンするはずなんですよ!

DBアクセス周りなら、何々って会社の何々さんが作ったコードがチューニングされていて素晴らしい、とか、UIのレンダリングはやっぱりXXX社製のYYYYUIコントローラーが高速だよねー、とか、そうなるはずだったんです!
多分!(笑)