Ok, well I've tried it both ways and the code is no prettier with the checks in the bg_manager. In fact, it complicates the function type signatures because we have different meanings for "ok, we're not using this API, so continue anyhow"  vs "ok and here is your lock reference". So, I'm voting to add convenience functions to the bg_mgr for getting switch values. That does reduce code in the subsystems. But not moving the checks inside of the calls themselves.