If you control both ends, no big deal. If you're just working out some protocol, no big deal. I love simple toy solutions to problems, especially when understanding the problem space. But this is going to fall apart under any sort of pressure.
This was a joke to poke fun at people who comment "unnecessary use of cat", but yeah, it's bad on many levels.
However, in many simple cases, it will produce a valid response, since http server implementations are often extremely lenient. But I'd never use it because curl is truly everywhere.
That's not the same at all, because the nc example dumps the response headers to stdout and the curl example does not.
It's more similar to "curl -i perdu.com", except (on my system? maybe it's non-default) curl colourises the header names when output to a TTY, and prints a progress report to stderr when output to a non-TTY.