As winecfg gets better and better I think it's time to consider making it actually change the config file. I made a patch for it, but it's a work in progress, and not ready for general use. I don't expect you to commit it, so I sent it here for discussion.
I don't think that this needs a complex migration process, all we need to do is save the wine config registry to $WINEPREFIX/config. If people want their config file back, wine can skip saving the configuration if it wasn't modified. This will allow comments to persist in the config file. Anyway, regedit is better than editing a config file.
In writing this patch I came across some strange stuff in server/registry.c. What's the point of all the save level stuff? current_level is only set once to 1, on initialization, and save_level depends on whether registry branches should be saved only when modified (can anyone think of a reason to disable that feature?). Can't the KEY_DIRTY bit be used instead of this level stuff? Also update_level seems to be dead code, not called from anywhere.
Please tell me what you think about the patch.