Ah, I thought bash script exits with code 0 when it is not specified explicitly with `exit`, but it exits with the code returned by the last command.  So there is no problem in this script.

But I think using `exec` here makes sense anyway as you don't waste additional process.  When you don't use `exec`, you will have bash and emacs running while emacs is running.  When you use `exec`, you don't have bash running, like you directly invoke emacs.