I know very well that it should never rewrite or modify in the core of magento. If we need to do this, there is the right way to do that in local codepool but is all that just for updates, That if we do some update to not lose our modifications? If anyone ever knows more than that, he will be welcome to enlighten us all, it could be used for everyone.
Generally Magento working on MVC structure.
Some times developer need to modify core functionality of magento because of some special requirement.
If we override that functionality in local codepool with creating core structure then there are following limitation
If we upgrade our magento from old version to new version at that time it will not update with new version.
If some custom extension extend same class, then it will not work as it developed due to core customization.
If we are trying to install the patch due to core customization patch are not installed and generate errors.
Magento recommended to do not modify core files because all your changes made in core files will be lost when the current Magento version is upgraded to latest version..
Before changing anything in the core you should device a clear cut policy to ensure that your customized core files are upgradable, non-over writable and easier to accommodate further customizations.
Magento gives the flexibility to customize it’s core but the most important thing is the developers discipline. A slight negligence can make all efforts go in vain especially when the Magento version is upgraded, degraded etc.
That's why we never do changes in core file.
In case of temporary changes you can do it but do not forget to revert back the changes.