Was actually about to create a post on almost the same thing, as I just stumbeled upon it when looking at the code, looking for another problem.
Homeing offsets shouldn't be added to G92, my problem is however that with auto bed leveling, homeing offsets doesn't gets added.
Anyway I had the same problem as you with negative coordinates and PCB milling, I found that there are 2 workarounds, besides modifying the code.
For both workarounds you'll need to set all your homeing offsets to 0, in order to get G92 to work as expected.
Then either:
Disable minimum software endstops:
#define min_software_endstops false
In Configuration.h, this will allow you to move to negetive positions.
Or
Move the BCB in Eagle, so all coordinates are negative, this way they will be positive, when the board is mirrored, but this will only work for singlesided boards.