Setting ifs='' defeats rc's tokenisation, so the result of `{} will be a series of rc `words', each limited to Wordmax (8192) bytes and with the next byte of the input stream after each word set to NUL.
Did you perhaps intend to write ifs=(), which has different meaning?