How are measuring units handled?

I got QGC to compile; one of the first things I noticed when running it is that you have to restart it after changing the measuring units. In the software I’ve been writing, this is not the case; all measurements are held internally in coherent SI units, except most angles, which are in binary fractions of a turn. You can change the length unit while PerfectTIN is processing a point cloud, and it updates the scale bar. How does QGroundControl handle units internally?