My understanding is the clone is required because the Propagator is not thread-safe (it has 'const' methods which allow others to change its internal state). So each module must clone in order to get its own copy.