Primary issue is that returning after commit vs. apply means that you can't return to the client the new state.
Consider a simpler calculator.
A client sends: Inc 5 command
You _can_ return to the client as soon as you commit to the log, sure. But then you won't be able to tell it what the _result_ of the operation is.
If you don't _need_ to, sure. But in most cases, that is important.
To give a more realistic example. CreateUniqueUserName.
You usually need the _result_ of the operation to do anything meaningful, not just recording this.