I'm aware of how CUPS work. And the link I posted explains this too.
For the case of a local printer printerd would just call out to the local cups daemon just like currently, and printerd would be nothing more than a frontend for cups with an API that is nicer for async code (ever tried to write async code using libcups?).
However, if you're not using a local printer, but rather some network printer or cloud service then having to have a local system-wide print spooler is completely unnecessary, and printd would just forward the job to the spooler on the remote server, working completely in the user session.
Running in the session has some advantages besides just needing less code. It also allows the spooler to do things like authenticate to the cloud service in a normal way, as its part of the user desktop session, rather than some system service.