Are you commenting on Windows 7?
With Vista and earlier, the OS APIs allowing setting properties for 1 display at a time (more correctly, 1 surface at a time). With MS inventing a new OS API called CCD, the entire topology has to be supplied in the single call, even if only 1 value (such as refresh rate) is changed. The OS itself decides on how to parcel up the calls into the Driver, and is the source of the blank screens.
Now, there is also a problem even with the new MS CCD APIs where some requested display settings would be lost if only a single call is made, even if all of the changes are supplied in that call. MS can lose some of that (this occurs usually only when changing surface to target mappings), so ADL checks for certain kinds of request and may issue more than one CCD call to “try to” ensure all of the requested changes occurs. This latter issue is likely *not* involved here, but I thought I’d mention it.
As an FYI, the old “CDS” calls still work, but have an even more dramatic effect compared to using the new CCD APIs directly.