If I look at the observer code, I don't see any reason why it wouldn't update the slug.
before_update() will check if one of the source fields has changed, and if so, it will call before_insert() to create a new slug and store it in the defined property.