There's no point spending twice the time making something that corresponds 1:1 to code - unless the code is truly horrific, and then you've got bigger issues. One generally assumes people involved with a project will know or learn relevant languages.
It's more commonly used for things that are less obvious from the source itself - like "what's sent between the client and server in this handshake" or "what is the overall architecture of this part of the code"
Flowcharts may be a bit more common when studying algorithms in general
Edit; from your other comments, you seem to be talking about protocols, not algorithms. An algorithm is a set of steps to do something. A protocol is a description of how different systems interact such as in a chat application.