The exec built-in command mirrors functions in the kernel, there are a family of them based on execve, which is usually called from C.
exec replaces the current program in the current process, without forking a new process. It is not something you would use in every script you write, but it comes in handy on occasion. Here are some scenarios I have used it;