Having further investigated this problem, I've discovered that it results
from trying to write to a filesystem (VFAT) which can't handle filenames
with question marks in them. Perhaps then this is not technically an
rsync bug; although it would be nice if rsync handled the situation
gracefully, perhaps even allowing for substitution of another character
when the character in question is illegal on the target filesystem; or,
alternatively, aborting the transfer at the start rather than after
receiving the entire file and then not being able to write it.
This mainly causes problems for frequent rsync jobs where the same
potentially very large files keep getting transferred over and over again
and then lost because they can't be written on the target filesystem,
thus needlessly using up a lot of bandwidth.