If you disassembled user32/comctl32 dlls
Yes, I disassembled comctl32. Have I changed something in the Wine's implementation of this library? Nothing. I just "commented out" the obviously wrong code (otherwise it wouldn't work) and changed some class properties according to this article [1] from MSDN (section "Registering a Window Class", see the note about CS_GLOBALCLASS).
My understanding is that comctl32 itself should register its versioned classes
Well, after the months of debugging you'll finally find out that your assertion was wrong and (as far as only 2 options are possible) you'll write exactly the same thing, as I did. In this case, I just saved my time, starting with the right option, and skipping the wrong one. I believe this action does not violate the Clean Room design.
[1] https://msdn.microsoft.com/en-us/library/windows/desktop/ms633574.aspx