From reading the code with bad glasses rather than from knowing (out of my league, by far ) : my partial understanding is that full and incremental backups don't leave the host by the same route.
FullXapi.mjs calls VM.export once and gets back a single XVA tar archive for the whole VM, while the incremental runner calls exportIncrementalVm per disk, and it's that per-disk call that carries the preferNbd option. Grep preferNbd across @xen-orchestra/backups and you get five files, all of them on the incremental side.
So my guess, and it' a wild one, is that the two shapes just don't fit: NBD hands you one VDI at a time, and a full backup is asking for the whole VM in one archive.
I've no idea whether anyone has looked at changing that, so might be worth a mention to @Team-XO-Backend, who would actually know.