`scale.autoDomain()` causes a broadcast, and both `_removePerspective` and `_addPerspective` call it. Not sure if there's an easy / atomic way of updating a Scale's perspective though.