Then apply their internal ECC, before bad data could be supplied to ZFS.
Can you expand on how you think this is supposed to work? ECC is ECC. When it is read is irrelevant especially in the case of HDDs. An unrecoverable error is not blindly passed anywhere, it will be logged by the kernel which would throw an error, and logged in SMART attributes (and is virtually always a precursor to a drive failure). Recoverable errors are just logged in SMART, but do not get passed to the kernel. Critically reading from a HDD does not in any way give you info about its marginal status, nor does it cause a re-write. At best it may find and flag a bad sector (and that is also logged as a SMART attribute), but in general there's no degradation over time of a sector that isn't read on a HDD.
You don't need ZFS to know an unrecoverable error has occurred, and you don't benefit from ZFS when a recoverable one has occurred. Now the exception to this rule is SSDs which need to periodically read to maintain charge. But this was only a problem in the early days where our knowledge of NAND storage was poor, these days SSD controllers do this in the background for the entire drive whether you request the data to be read or not.
I've been using ZFS for decades too on multi TB systems (currently 48TB). I've seen zero correlation between scrubs and errors. I'm curious as to if there's something I've missed here from a technical perspective.