To just add my opinion, you must respect the guideline of the OS. On mac, all resources are in a specific folder, this folder is made for an easy access of resources. Not making it the working dir just break that without any gain. What we are discussing should transparent, that's why Apple made us a resources dir and a bundle for app. If your not convinced you should take a poll.
This is not an hack, this is what thing suppose to be on a mac. Easy to use, nothing more, nothing less.
However, your solution with the .mm file look like to an hack to me. Force user to have Cocoa and call to an obj-c++ should not be a solution. Neither than a conditional compilation, this add unwanted code for basic needs.