To clarify my original point a little.
We have course A with a forum called "My forum", that is set to grade using the "Highest grade" method.
We have course B which is a copy of this course.
At some point, we switch the grading method for the forum in course B to "Average grade".
We then change the name of the forum in course A to "My renamed forum".
What should the outcome be in course B? Do we expect the forum in course B to have the name changed to "My renamed forum" and the grade method reset to "Highest grade"? Or do we expect just the name to be changed?
If we only expect the name to change, then we suddenly need to introduce a lot more fine-grained tracking of exactly what has been changed; at the moment, when you edit the settings on a forum activity, the full settings from the form are written into the database, no attempt is made to track which ones have changed.
Even if we did have this fine-grained tracking, what happens if the forum in course B had been independently renamed to "A new forum name" - what do we do then? Do we just overwrite this with the new name from course A? Do we refuse to overwrite, because we've changed it manually in course B? (If the latter, then we need to keep track of which differences are because course A has changed and which are because course B has changed).
For that matter, how do we even know, if we edit a forum in course A, which of the forums in course B is the one we want to update? We could introduce a new field somewhere to link the forum in course B with the forum it was created from (during the initial backup and restore). This wouldn't be particularly difficult to do, but the complexity quickly multiplies up as we go on.
What about if we duplicate an activity in course B - is that duplicated activity still marked as created from the original activity in course A (so both of the copies in course B get updated when course A changes), or is that duplicated activity completely separate? What about if the activity is deleted in course A - should the activity (and all the user data) get deleted without warning in course B (and what about the duplicate we created from it in course B - does that go as well)?
That's just a single example - many activities have more complex settings which might be spread across multiple database tables (e.g. the "database" activity, where the configuration extends to the list of fields and the display templates) - we'd probably need to extend every activity to manage the tracking of the changes within itself.
This is all before we start getting into activities where there is an unclear boundary between configuration and user data - for example a wiki: if a teacher edits a wiki page in course A, should that be replicated to course B? If so, how do we merge that with any changes made by users (either students or teachers) on course B? Do we just overwrite, or do we have to find some way to merge the change history?
What happens if we create course C from course B - do the changes from course A need to replicate all the way down to course C as well?
I know that many of these issues I've highlighted may have really simple or obvious solutions that will cover 90% of the use cases, but if such a feature was ever actually rolled out, it would need to handle those awkward 10% of cases in a clear, transparent way, that doesn't lead to unexpected overwriting of data.
I'm not saying this is impossible to do - clearly there are solutions to every one of the points I've raised; but there is still a lot more to it than simply having a flag that says 'replicate all course changes to course X'.