Frankly, I think that modifying the Windows GDI (and by extension
modifying every single application that prints through Windows)
is even more pie-in-the-sky than replacing every single printer
in the world. There are more of those beasties than there ever
were printers, and quite a few businesses that depend on software
that can't be modified for one reason or another.
So we've more or less settled that in the common case, there HAS
to be one link in the chain that can look at both ends of the job
at the same time, and understand enough about it to figure out
what its requirements are.
Print-by-URL is irrelevant to this discussion, since there
the distinction between parameters "before the URL" and "after the URL"
is pretty slim; they are both communicated to the printer before
the URL is dereferenced.
So - the spooler is there; just choose which side of the IPP-defined
interface you want it.