Normalize observer emit and cancel patterns.

Defaulting to noop is not always necessary. Observe functions are not
obligated to return a cancel function. Short circuiting is common enough
to break the style guide on conditional expressions.

And don't forget the missing null checks on the with block observer.