Spooling involves creating a single process or machine that is the sole direct user of a particular resource. All other processes or machine can only use that resource indirectly by requesting that the spooler do the job for them.

That takes the resource out of the pool of resources that can be allocated to processes. Fewer allocatable resources means less of a chance for deadlock.