Closing this as designed.
To summarize, this is happening because the color picker serializes a default initial color of white when opening it. Having this opened and issuing an undo action on multiple selected objects, the defaulted color gets assigned instead of the original colors. Note that when editing the color property for multiple objects, the color picker, at first, it starts with a standard fallback color which is later is replaced by the color picked (if any).