シングルトンについての個人的な意見だが、
クラスをまたいで同一のシングルトンを操作すると、クラスが癒着してしまって切り出せない構造になってしまう。
それがOOなのかはよく知らない。

継承するくらいなら、委譲したほうがいいし。
クラスの設定とかをするなら小さくまとめて、コンストラクタや初期化メソッドあたりで設定してしまうのがいいと思ってる。
用途が同じでもグローバル変数はもちろん使わないがメンバ変数は大いに使う。ポータビリティの違いがそこにある。