オブジェクト指向の特徴・Java のパラダイムについて簡単に触れ、①②がオブジェクト指向を実現できていないことを示し、結論としてオブジェクト指向のみに執着しないことを勧めます。
オブジェクト指向の特徴
手続き型プログラミング - Wikipedia
上にリンクしたものは、手続き型プログラミングに比較してオブジェクト指向プログラミングがどのような特徴を持っているかを書いたものです。
どこからでもアクセスできるグローバル変数の問題を解決するための、クラスによるカプセル化が示されており、また多態性による手続きの抽象化も示されています。
Java のパラダイム
Java - Wikipedia
次にリンクしたものは、Java について書かれたものです。「パラダイム」を見ると、
オブジェクト指向, コンポーネントベース, ジェネリック, 関数型, 命令型プログラミング
と、複数のパラダイムが並んでいます。つまり Java はオブジェクト指向言語ではなく、オブジェクト指向パラダイムの含まれたマルチパラダイム言語 と呼ぶことができます。
このことから言えるのはオブジェクト指向プログラミングが必ずしも Java プログラミングとして適切とは限らないということになります。
さて問題の①②ですが、これはオブジェクト指向的とは言えません。しかし先ほど述べたように、Java は純粋なオブジェクト指向言語ではないので、それがすなわち悪であるということでもありません。
なぜ①②がオブジェクト指向的ではないのか
① static メソッドは多態性を持ちません。オブジェクトの状態を変化させるメソッドでもありません。それは手続型の関数です。
② static メソッドによって提供されるオブジェクトは、確かにそれを提供するクラスに縛られています。しかしそれはモジュール化と何ら変わりはないものであり、多用することによってグローバル変数と同じ問題が発生します。オブジェクト指向の本質は、様々なデータを様々な関数で扱うことではなく、カプセル化されたデータを制限された関数で扱うことであり、その思想から反しています。
結論
Java は複数のパラダイムに対応しており、問題解決のために選択することができます。問題解決に最も適した方法、そしてプログラムの保守性を高める工夫をすべきでしょう。
static をいつ使うか、それはオブジェクト指向より手続き型の方が適していると考えられる時です。ですから、「オブジェクト指向を実現できているか」という問いそのものが問題の本質からずれています。「オブジェクト指向」ではなく、「問題解決」に視点を向けましょう。
しかしながら、初心者にとってオブジェクト指向は難しく、手続き型の方が理解しやすく使いやすいものです。そうすると、すべてを手続き型で解決しようとする、いわゆる satatic おじさんになりかねません。最初のうちは、まずオブジェクト指向の考え方に慣れ、オブジェクトを指向し、その上でどうしても無理がある時に static を使うくらいで良いのかもしれません。
質問への明確な回答
・オブジェクト指向 を実現できているか
別のパラダイムです。
・この実装方法で後々に不具合が出る可能性はあるか、あるならどのような場合か
場合によりますが、この判断基準で機械的に行うのであれば、後々保守が難しくなる可能性があります。本当にそれが適切なのかを個々のケースに基づいて判断する必要があります。