One way is to use xargs:
realpath -z 'oneword' 'two words' | xargs -0 find
Or:
foo() {
local A=() I=0 IFS=''
while read -rd $'\0' A[I++]; do :; done
find "${A[@]}"
}
realpath -z 'oneword' 'two words' | foo ## Under subshell or pipe
foo < <(realpath -z 'oneword' 'two words') ## No subshell
You can use another fd if needed:
foo() {
local A=() I=0 IFS=''
while read -rd $'\0' -u 4 A[I++]; do :; done
find "${A[@]}"
}
foo 4< <(realpath -z 'oneword' 'two words')
Note: Using IFS to split your variable's values to multiple arguments can cause pathname expansion and is not commendable. It requires modification of IFS as well which could affect other functions.