In case the core is changed, the risk involved is changing the behavior of the application in many unexpected ways. Therefore, if you do change the core, the changes should be as low-key and subdued as they can. The only two methods to change your Magento Core that can be possibly applied are:
a. dispatch an event
b. creating a place holder method.
Either of these two methods will ensure that when the Magento core is patched, the Magento core will behave as it did before. Actually, these changes are trivial. Therefore, in order that the behavior of the application changes, the code needs to make use of the modification to the core, hence it needs to be written in the local code-pool.
If the Magento code needs to be of a manageable quality, with respect to readability as well as maintainability, it should be understood that any changes to the framework core should not be taken lightly. However, with the correct tools available and maintaining proper discipline, it could become a viable option.
Conclusion: Managing your Magento eCommerce store is as much crucial as developing it. You can rather go for patch management than changing the core code. It would be beneficial for you to partner with reliable Magento Solution Partner as they can help you to fix issues quickly without compromising a quality.