The input and display of coordinates should be selectable by the user, with the intended origin (and maybe the coordinate orientation) stored in the board file.
I want to be able to send my board files to fab houses and not worry that they don’t have the latest patches. That means keeping the file format backwards compatible, so no changes to the coordinate system saved in the files. Nor would I change the internal representation to avoid cascading breakage.
It’s the user display and input interfaces that would have to change. Anything that reports a coordinate to the user, or accepts a coordinate from the user, should go through a common class. That class applies whatever transformations are required between internal and external representations. The default behavior uses the base class transformation, which results in the current behavior. Want polar coordinate input? Extend the class.
What I haven’t done is dig around in the code to see whether the basics of this already exist, and how painful it would be to make this happen.
BTW, while I’m a hobbyist in electronics and PCB design, “in real life” I’m a professional C/C++ programmer with well over 30 years experience. This isn’t my first time making changes in production code. If I can find time to do this I’ll do it right so it integrates nicely.