The reason it's done this way is because the exit status is only of the last command in the pipeline.

Your solution will only fail if 'sed' fails, not if 'od' fails.  The result will appear to be successful but be a zero byte file.