observeValueForKeyPathで、ofObject object: AnyObject?がnilになるケースって存在すんの?
ObjCのクラスを自動的にラッパーして直してないから、ポインタがオプショナルになってるだけでしょ?と思ってる。

自分なら、このケースの場合、if let object は外して↓だけで済ます。
object?.removeObserver(self, forKeyPath: "state")

>>82
外人とかのコード見てもアンラップするだけで、変数名変えるのはあんまり見かけないな。