Still remains the question to whether changing DPI dynamically is a good idea, I can very well imagine per-monitor DPI aware app deciding to adjust things based on that after they changed display modes.
This is a pertinent question, since, from what I understand, display mode changes under Windows don't lead to any changes in the reported DPI. I don't know if/how applications may be confused by that. In the model from my previous post, we just return the physical dpi (currently =`system_dpi`) as the monitor dpi and the driver will then apply all the needed scaling (so effectively what part-12 and this draft are doing).