The propagate function is for propagate a setting from one object to one or several other objects. If you for instance add some metadata to a function or a device and you want to propagate that setting to thousand other devices or functions. Then you use propagate.
Propagate is a very popular tool and solves issues at larger installations. But since it is a very powerful tool it also needs to be used with precaution. It is a dangerous tool as well since you can change a lot and there is no "undo".