I wrote a blog post on a similar topic that goes into a bit more detail in some areas: https://adrummond.net/posts/macho There have also been some significant changes since 2014.
First time I've seen that style of visualization for the byte code. Really effective way of breaking it down though, and allows a good way of visually seeing sections of code.
To answer your question, writing a NUL char to stdout is no problem. Some utilities can actually use it as a delimiter since it’s so uncommon. I think most shells would just print nothing on the screen.