The other day, I was changing a service configuration. When trying to start the service, Upstart kept on throwing errors that were related to the old version of the code.
Turns out that Upstart will not switch to the new version as long as you have running jobs for that service.
The new .conf may change things that would affect any running instances.
Also, Upstart wants to ensure that all running jobs use the previous version of the post-stop script.