Much like how Libraries work: Components from libraries that aren’t being used in a file are automatically updated without the user’s intervention.
The user could check a box when creating a new branch from Main (and mange this option if they want to change it later) that will automatically update objects in a file if those objects haven’t been changed in the branch.