On my Contract I have a field for the Signatory. The Default Signatory is set as a field on the Account. If I am creating a new Contract I always want the Default. But if they change the Signatory away from the Default, then I do NOT want this Before-Save Flow to override their choice.
If the Contract is Activated, and the Default Signatory changes on the Account, and I happen to update any field on a Contract after that, then I do NOT want the Signatory to change to the new Default Signatory from the Account, I want it to always remain as the Signatory it was set as.
So, why not do this in a Before-Save Flow only for Create… yep that is fine. But what if my Account changes before the Contract is Activated (eg the Contract needs to be for the Parent Account which is the National Office, rather than the Branch Office. If I change the Account, I ALWAYS want to set the Default Signatory again.
So this is probably where I would revert to doing a Before-Save Flow on Create, then an regular Process Builder on Is Changed… it gets too hard in a Before-Save Flow on Create and Update.