Git flow ensures the following way that changes to master and release eventually end up in develop:
hotfixes branch from master and merge back to develop. If there is an active release branch it merges there and only propagates to develop once release is merged to master and develop.
changes to release are only merged to develop once the release is finished
I wonder why there is the delay until the release is completed. Wouldn't it be much easier to simply merge master to release and develop whenever a change to master occurs and release to develop when release changes?
This way I would get changes immediately reflected in all relevant branches and I would not need to think about what to merge where and when.
The only explanation I could think of is that git flow decided that having less frequent merges outweighs the benefit of having an up to date/synchronized codebase across branches.