>>78
> static void PrivateFunc(OtherType & m) { m.DoSomething(); }

これが綺麗に見えるのは幻覚。
使っているprivateメンバー変数がたった一個だから。
このメンバーも使おう。さらにこれも、と追加していったとき、
privateの範囲内で当該クラスに閉じた世界の話になるはずなのに、
そのやり方していたら、そのクラスとクラス外の様々なstatic関数に広く影響を与えることになる。
そんな作り方してると内部仕様の変更に対する隠れた抵抗勢力になる。
そういうのでがんじがらめにしておくと、悪い方への変化はしやすいけど、良い方への変化はしにくくなる。
それは誰かを陥れるために使う戦略で、日常は使うな。