What version of Maya do you use? Polygon, sub-d or Nurbs? I remember the older version has similar problems with undo when painting weight but the bug should be gone. Undo works fine in 2008.
In maya, you can't set negative weight value. If you assign negative value of a joint to a vertex, the weight will be distribute to other joints.
It's kind of a "no no" thing to use undo when paint weights, it was buggy but seems like Autodesk fix it after they bought Maya. It still has problem when painting sub-d though, the display won't refresh for some reason.