We should definitely open an issue about this.
I think we right place to deal with this is in the store.py (in the annotator-store)
I see two ways: 
- Modify the update_annotation(id) function to be able to detect if this is a redaction or edit an allow to modify the username only for redaction. For that we have to check the incoming json and look for the redaction field.  The problem with this approach is this is a not a clean solution. (and by clean I mean that the store.py never checks the incoming json for deciding what operation should it perform)
- The other possible (and by server side much cleaner) solution would be to put a new route rule for redaction. This would work exactly the same as update, but it would set the username to '' (so the server would update it to an empty value) this way the username is protected against change. The only downfall that we have to implement this in client side too:
    * So maybe we should invent the annotationRedacted message (I don't know how it'd affect the annotator)
    * Or maybe change the update method in the annotator.store plugin that depending on the operation (edit/redact) it should call the correct backend url.