Sorry, I misinterpreted the Patch because of the subject.
I'm fine with your Patch, when you fix your typo:
> + if (hadprinter & !haddefault)
> + WINSPOOL_SetDefaultPrinter(dests[0].name, dests[i].name, TRUE);
With greetings from Copy and Paste: [i] => [0]
For the subject, I suggest to include "Fallback":
winspool.drv: Fallback to the first found printer as default printer