1. It is currently not possible to change the workspace of a style using REST, while this is supported low-level and possible in the GUI. There is an IF-block blocking this, but there is no reason for this. Also, it is not possible to change by to global workspace because null workspace is ignored.
2. If you specify a name in your PUT, the GeoserverResourcePersister will think that you are renaming the style, even if the name is still the same. This will cause it to add a number to the SLD file. This is unnecessary and strange but not very harmful in theory... (at least we should check if the name has actually changed or not)
3. However, there is something dodgy about changing another field in the style while we are in the middle of a save. The event dispatcher passes on the original object, not the modification proxy, and the change is not recorded in the modification proxy or in the event (since the event is already being processed). Somehow, this still magically works, despite bypassing all the normal API and mechanisms and counting on magical behaviour. In jdbcstore it seems to fail randomly, and work randomly, I cannot find why. But something needs to be done about this in any case, although I am not sure what yet.