Ah! Found it! Or this is what I could figure out thus far... If I made a mistake, or someone has additional info, please reply as I think about turning this into a Survival Guide page.
Here's what happens (I think):
Windows 7 and Vista have an 'XP-style DPI / XP compatible DPI scaling mode' (or whatever you want to call it). By default, XP, Vista ad Win7 are set to 96 DPI.
On XP, changing the DPI does change the elements of the Windows GUI, as well as the size of fonts being drawn even those inside a PureBasic program. On Vista and Win7 you can disable 'XP style DPI' and then suddenly everything changes...
In addition, on XP you can als set the font to 'large' but this does not affect the DPI, it only affects Windows GUI elements.
In XP-style DPI.
In 'XP-style DPI' everything works like Windows XP (little surprise there):
- DesktopWidth() reports actual screen width
- GetSystemMetrics_() reports actual screen width
- GetDeviceCaps_() reports actual screen width and actual DPI
- GUI elements are drawn using the actual DPI setting
- Windows positions are drawn on given screen coordinates
- Fonts are drawn using a font based on DPI setting
The above can lead to a surprise when you change the DPI settings and draw a font, so you have to adjust the font size using GetDeviceCaps_(), but that's it. Frankly, I think font size shouldn't change with a different DPI setting, as no gadgets are resized in XP-style DPI mode.
It seems anything above 120 DPI (144 DPI?) is considered 'high DPI' and might yield different results but I'm not totally sure yet. Still looking into it
Non XP-style DPI.
With XP style DPI disabled things work differently: now everything which is not 'high DPI aware' is going to be resized / scaled automatically, or at least that's the concept

Some values will be adjusted accordingly, so if DPI is set to 150 in non-XP mode, your application on a 1680x1050 screen will be 'enlarged' as if the screen was only 1075x672 pixels.
- DesktopWidth() keeps reporting actual screen width
- GetSystemMetrics_() reports the adjusted screen width
- GetDeviceCaps_() reports the adjusted screen width and always 98 DPI
- GUI elements are drawn using the real DPI setting (pro rato upscaled)
- Windows positions are drawn on adjusted screen coordinates
- Fonts are pro rato upscaled
For all practial purposes, your application runs as if it was running on a Windows XP box with a different screen size and a DPI of 96. Unfortunately, except for WinApi, there's no way to find out the 'adjusted' screen size, as DesktopWidth() reports the physical screen size regardless of DPI settings so if you're using DesktopWidth() and its brethern be aware...
High DPI aware code.
Still working on this one, but to use high DPI values you seem to have to do a bit of additional work outside of your code.