While I actually mostly agree with you, I feel I need to point this out... You write:
> I will point out that a network protocol is not designed to be error-proof in an intentionally antagonistic environment, which is a difficulty unique to cryptographic software.
But that's actually not true, at least not anymore. People attack protocols on the internet all the time, and it's a difficult task to harden them against that.
That said, it doesn't really take aware from your point, I think; but rather confirms it: Think twice before rolling your own network protocols (at least if they are meant to be used in large scale on the open internet), be aware of all the complicated pitfalls.
But that's actually not true, at least not anymore. People attack protocols on the internet all the time, and it's a difficult task to harden them against that.
That said, it doesn't really take aware from your point, I think; but rather confirms it: Think twice before rolling your own network protocols (at least if they are meant to be used in large scale on the open internet), be aware of all the complicated pitfalls.