That is an easy one: you should never use core, but always local.
Or did I misunderstand the question?
Reasons are simple as well. If you overwrite files in core and then update your shop (i.e. update the core folder) to a new version, all your modifications will be lost and you will need to search all the files if you have modifications.
In contrast, when you have modifications in local, you know which files are edited and can diff them to the new files.
However, the best case is to use rewrites in your own custom module, so you do not need to completely replace a file and can just modify it to your needs.
Your question really is why you should avoid overwriting in local and instead use a rewrite!?
If so: It is better to do a rewrite than put the file in local, since chances are that your rewrite will work with a new version of Magento while your local file won't.
Why is this?
Let us assume you want to overwrite class A which has 100 methods.
You only need to modify one method let's call it "testMethod()".
So in your rewrite, you will extend from the core class and only implement that one method.
In contrast, when copying it to local and then change that method, you have overwritten the whole file (so 100 methods).
Now you update your shop and the class A now has 140 methods (40 new methods created by Magento Core team).
Your rewrite still rewrites only one method, so all 139 other methods are preserved.
However, your local file still has 100 methods, so 40 methods are missing...
So a rewrite has the potential to still work after an update - it could be that the method you are overwriting still needs to be modified, but chances are everything still works.