exit
é geralmente um shell embutido, então, em teoria, depende de qual shell você está usando. No entanto, não conheço nenhum shell em que ele opera além de sair do processo atual. Da página man bash,
exit [n]
Cause the shell to exit with a status of n. If n is omitted,
the exit status is that of the last command executed. A trap on
EXIT is executed before the shell terminates.
Portanto, ela não termina simplesmente a cláusula if
atual, ela sai do shell inteiro (ou processo, em essência, já que o script está sendo executado dentro de um processo de shell).
Do homem sh,
exit [exitstatus]
Terminate the shell process. If exitstatus is given it is used as
the exit status of the shell; otherwise the exit status of the
preceding command is used.
E por último, do man ksh,
† exit [ n ]
Causes the shell to exit with the exit status specified by n.
The value will be the least significant 8 bits of the specified
status. If n is omitted, then the exit status is that of the
last command executed. An end-of-file will also cause the shell
to exit except for a shell which has the ignoreeof option (see
set below) turned on.