While ILayerContent and LayerViewStatus are meant to simplify table of contents code, I see a problem in that the LayerViewStateChanged event only fires for layers, not sublayers (e.g. of an ArcGISMapImageLayer). What happens when the visibility of a sublayer changes, but not of the parent layer? Unless I'm missing something, the way I see it, I still need to navigate through and check visibilities of sublayers whenever MapView drawing or navigation completes, in order to update their TOC entries.
[BTW, I'm glad to see the DrawStatusChanged event -- that's been on my wish list since Runtime .NET first came out.]