I agree with the OP, that we *should* be able to update a Layer State once, and it affect all Viewports - and all drawings - that are associated with it (much like SSM, Fields before PLOT, PUBLISH, etc.).
Unfortunately, that is just not how Autodesk designed them to work.
As-is the current system manages per-Viewport layer settings (i.e., Layer States, VPLAYER, etc.) using the Viewport.FreezeLayersInViewport(), and Viewport.ThawLayersInViewport() Methods, which are not exposed to LISP.
Separately, the Database.LayerStateManager Object manages the Layer States themselves, and can be associated with a View Object using the LayerState Property (string)... A Layout can also be associated with said View Object using the LayoutId Property (ObjectId). Difficulty here, is even if you go through those steps, this still doesn't actually update the Viewport(s) themselves.
There's no existing mechanism that associates a Layer State and the Viewport(s) it has been applied to, one would have to be developed, as Opie aptly points out... An event-driven mechanism that 'updates' associated Viewport(s) automagically (via LayerState.GetViewportIds() Extension Method, as starting point?).
Further complicating matters, is that it would appear that the LayerStateManager Object's own Events do not fire properly, with exception to LayerStateCreated Event (perhaps something's change in newer versions?)
Some links for reference:
Understanding How Layer States Get Restored
LayerState Property (ActiveX)
AutoCAD .NET LayerStateManager Events – Post Operations
Thanks, guys. *tips hat*
Cheers