This is more of an "I'm curious why" question... in regards to a command like this:
Strange things happen. The console prompt becomes garbled nonsense. This phenomenon is not unique to vi, either; many binaries have this effect on standard out when cat'ed.
Why does this happen - are bits of the binary being executed? But if this is so, why is the file not executed properly? Lastly, is there anyway to safeguard the cat command from this sort of thing?