I do, and you should care as well. Code duplication should be avoided whereever it is sensibly possible. Imagine that we find a bug in this script and fix it only in this copy and not in the plugin restart code... or that we want to change to a different way of restarting. 

This is part of a larger principle: Don't repeat yourself (http://en.wikipedia.org/wiki/Don't_repeat_yourself). If you state something twice in two or more different places, there is a risk that the two will diverge, and the program will become inconsistent. For example, imagine physics code where the gravity constant is repeated everywhere where it's needed, and then someone tries to change it and forgets a few places. The result probably won't make much sense.

Another thing to look out for is that a function (script) should ideally only solve exactly one problem / question. The GG2 code is not a good example of that and Game Maker in general doesn't really help sticking to this because calling scripts has some overhead, and navigation between scripts isn't convenient. However, in this case I'd suggest splitting this script up into its three concerns, so that we can deduplicate the code more easily.

The three concerns I see are: Handling the setting "unexpectedDataPrompt", Asking the user whether to restart, and actually restarting.

I'd say we need only the last two for unexpected data handling, the setting is a bit too much since that error is not something people should see regularly. So my suggestion is: Make a new script which restarts the game, and another new script which shows a restart prompt (with the message text as parameter). Then edit the pluginscleanup and UnexpectedDataCleanup scripts to use these other two scripts. The settings logic can stay directly in pluginscleanup since it is only used there.