There are two sets of shift registers in the Tab-Delimited Data example, one for the file refnum, the other for the error cluster. Are you looking to understand both, or a specific one? (My guess from your attached VI is both?)
Quick thought exercise: What happens if ULx Read throws an error partway through execution? Would having tunnels result in different error propagation than shift registers?
(Follow up to that for general code design: If ULx Read throws an error, you may have gotten either no data or incomplete data back. Do you really want to log that to file?)
William R.