The input to xargs -L1 or xargs -l is almost a list of lines, but not quite — if there is a space atto split the endinput on lines, but to run one command per line of ainput (that line still split to make up the arguments, and continued on the followingnext line is a continuationif ending in blanks).
xargs -I PLACEHOLDER does use one line of input to substitute the PLACEHOLDER but quotes and backslashes are still processed and leading blanks trimmed.
You can use xargs -0r0 where applicable (and where available: GNU (Linux, Cygwin), BusyBox, BSDBSDs, OSX, but it isn't in POSIX). That's safe, because null bytes can't appear in most data, in particular in file names and external command arguments. To produce a null-separated list of file names, use find … -print0 (or you can use find … -exec … as explained below).