I think it was the original intention of the core team to allow overrides of both the core text and plugins. This 'fix' ended up breaking both. Core text overrides no longer work and plugin text overrides where reversed (plugin on top overrides plugins below it).
This makes me wonder if this was ever really broken at all. Changing my code back to use the original array_merge seems to make everything work fine. I am not sure what was broken to begin with.
Daniel - the array_merge was functionally fine, but it was slow. The += was used in Elgg 1.5 to speed up the process with the unintended side effect of breaking overrides. It was then fixed in svn after the release of 1.5 but there are no releases out there with the fix. I think a 1.6 release is going to happen soon. You could wait for that release or test against a svn build.