どの様な話?
名前の付け方や、第一級の括りの意味を知る事は、オブジェクト志向だからどうだと言う、独自の考えは無いと思います。
逆に、名前の付け方や、第一級の括りの意味について「虫が良すぎる」(長期間の真剣な研究開発でも解が無い)仮説が有ったとしても、それによってオブジェクト志向の価値が下がってはならないと思います。
その様なこだわりはオブジェクト志向とは分けて考えるべきだと思います。
名前?意味?
名前は点だと思います。そして実装(意味)はそれに相応しい滑らかな曲線となり、プログラミングの技術的制約によって、実装は人間が欲しい意味との乖離が発生します。
それが発生したからと言って、即負債だとするのは短兵急が過ぎます。
単一責任の原則
単一責任の原則(「変更するための理由が、一つのクラスに対して一つ以上あってはならない」 SOLID Wikipedia日本語版より)と言う原則が有り、
なかなかに実現するのに困難だと思います。
理由の方をコンピュータの技術的な都合に近づける(名前をまともでは無くし、説明的でわざとらしい名前にする、意味は分かり難くなる。)と実現しやすくなると思います。
要求仕様との乖離に対処するには?
- 単体のクラスでは無く、『複数のクラスを人間が欲しい意味に合う様に集めたもの(UMLのパッケージとか)』
に対してなら、「人間の理解し易い理由版」単一責任の原則も成立する様に思います。
「クラスがダメだから関数」とかの単純に向く方向性で無く、UMLのパッケージの様な、複雑に向く方向性の方がまだ芽が有る様に思います。
結論
これからも「まともな名前をつけさせてくれず、意味がわからない」事でプログラミングが嫌いになる人は存在し続けることでしょう。