fix(scope): watches can be safely unregistered inside watch handlers

Closes #2915