Fill writes src into *dst only if *dst is empty and src is not, returning whether it wrote.
This is the fill-only merge rule shared by every domain's field-class merge: a known value is
never clobbered by an empty one. Callers OR the result into their `changed` accumulator.