Definitely a bug that can be filed with the CMS. The system should handle it for you. Here's how to get started on filing bugs: https://github.com/joomla/joomla-cms/blob/master/CONTRIBUTING.md
Also, rather than hacking core files as you said, you can write up a plugin to handle his override for you. I've put together a base plugin that allows you to override core classes as needed here: https://gist.github.com/dongilbert/3237387
As you can see, nothing too complicated going on there. We first make sure we are in Joomla, otherwise exit. Then define the class following Joomla naming convention, and include our config file in the class construct. The config file is where the classes get registered to the autoloader.
In the config file, we define the OVERRIDES path, and then start registering classes to JLoader. I like to keep things organized, so my overrides directory mirrors the structure of the root joomla directory, only containing paths to classes that I want to override. Meaning if I want to override JFormField, I would have a structure like this (including the overrides directory):
overrides/libraries/joomla/form/field.php
And then in config.php I would add:
JLoader::register('JFormField', OVERRIDES.'/libraries/joomla/form/field.php', true);
You can also use this to override core component classes. I used it to override a view class in com_media like this:
overrides/component/com_media/view/imageslist/view.html.php
and then of course adding this to the config:
JLoader::register('MediaViewImagesList', OVERRIDES.'/components/com_media/view/imageslist/view.html.php', true);
You can download the plugin from the gist link above. It is ready to install into your Joomla site. Upload it first, and then add the overrides directory in the plugin directory. If you want to add all the files first and the upload, be sure to add the following to the overrides.xml file.
<folder>overrides</folder>