friend 指定による限定的なインターフェース公開

上のをもうちょっと一般化すると, friend class 指定によって,限定した相手に,もしくは限定したセマンティクスでインターフェースを公開する手法・パターンとして確立できるような気がするけれどどうなんだろ?ちなみにこのパターンの他の例として, Boost.Iteratorboost::iterator_facade あるいは boost::iterator_adaptor における boost::iterator_core_access があります.