Activityのライフサイクル

Activity  |  Android Developersを参考にします。
基本、Control/Viewは

  1. 自分が現在アクティブでなくても、今後アクティブになる可能性がある限りはModelからの通知を受け取っておきたい
  2. 今後アクティブになる可能性がゼロであれば、Modelからの通知を受け取らないようにしたい
  3. Modelの状態が変わらない間は そもそも通知がされないため、通知を受け取っても受け取らなくてもよい

ということだと思います。
finish()でActivityを終了させようとするとonDestroy()が必ず呼ばれますが、これは2に該当するのでObserver登録を削除するようにします。
さらに、onPause()が呼ばれた後はいつでもActivityがkillされる可能性があり、ここでもObserver登録を削除したほうがいいのかもしれませんが、onPause()からはonResume()を経て再度アクティブになることがあるのでそうともいいきれません。つまりonPause()実行後からonStop()実行後までは1とも2ともつかないため、3を満たすようにする必要があります。
今はModelを操作するActivityが1つしかないので3は簡単に満たせますが、画面遷移のためにActivityを増やしていけばそうも言ってられなくなるような。ということは3は諦めて onDestroy()でObserver登録を削除(=2)、それ以外のとき(=1)はActivityの状況を動的に判断して例えばバックグラウンドならToastを表示しないとか、通知は受け取るがその後どうするかは状況を見て決める とすべきなんでしょうか。混乱してきました…