If you're doing KVO and don't override
observeValueForKeyPath:ofObject:change:context:, (or you do override it but don't handle your callbacks) you'll generally get an exception. This trains you to do it right and never call super for the callbacks you're handling, or you'll get an exception.
Except if you've added KVO to a subclass of
NSArrayController(and possibly all controller types), and don't call super's
observeValueForKeyPath:ofObject:change:context:, bindings won't work at all, with no warning/notice/nothing. (Courtesy of Duncan Wilcox)