Just like in CGI there is normally no limit on how many processes get started. But, the processes are only started when the load is so high that they're necessary. If the load goes down, the processes will die off due to inactivity, unless you disable the timeout. Starting in version 1.8.3 an option was added to limit the number of perl backends running. Globals keep their values.
Nothing is destroyed after the request.
Do a touch on the main cgi file that is executed. The mtime on the main file is checked each time the front-end runs. No, root is not required. You may have to make modifications. Globals retain their values between runs, which can be good for keeping persistent database handles for example, or bad if your code assumes they're undefined.