It seems that I've been able to implement that change.
The only downside happens in a very very specific scenario:
If an user types a shout, attempts to save it, gets an error (thus restoring the shout), and then deletes the contents of the editor, the next time an error occurs contents of the editor will re-appear, unless the user has typed something else.
In short, it doesn't detect when an user empties the shout area.
However, I consider this to be an acceptable trade-off because errors should only be temporary anyway, and it's better to restore the shout one time too many than one time too little.