アーキテクチャの基本的な考え方として、依存性は常に上位に矛先を向けていなければならないというものがあります。
私の「依存とその方向」についての理解は、注目するのは安定度であり、不安定な方への依存を避けるというのがポイントと捉えています。
クリーンアーキテクチャの円の図では、内側の層が安定度が高く外側の層に行くほど不安定になるので、「内側から外の層に依存するのは避ける」という主張になっています。
ですので、同じ層の中での依存は許容される形になりますが、同じ層の中でも安定度の高低はあると思うので、それを考慮して依存の向きを決定したほうが良いのだろうと考えています。
(上や下という捉え方はなかったので、"上位"が何を指しておられるのかは分かっていません。「常に上位を向けていなければならない」について出典などあれば教えていただければ幸いです。)
usecaseに属するメソッドから、同じusecase層に属するメソッドを呼び出す行為は問題ないのでしょうか?
あまり経験は無いのですが、ユースケースが単一の目的や業務を表現するとすれば、ユースケースから別のユースケースを呼ぶのはどういった状況なのだろうか?という疑問があります。(参考としてぜひ教えていただければ幸いです)
また仮にそのような状況にあったらまずは、その処理は別のクラスやモジュールとして分離できないか、本当に共通化すべき処理なのか(たまたまコードの状態が同じだけではないのか)ということを考えると思います。
回答がこれだけだと申し訳ないので、合わせて参考になりそうな文献を提示します。
ドメイン駆動設計について発信されている松岡さんの著書『ドメイン駆動設計 サンプルコード&FAQ』には、まさに同じFAQが載っています。
(8.6.1 ユースケースからユースケースを呼んでよい?)
その疑問に対する著者の意見としては「複雑になるので推奨しない」です。
以上、参考になれば幸いです。