WhatsApp uses the Signal protocol which is licensed under GPLv3. Am I right to assume that they should legally be required to publish their source code since they use the Signal protocol on binaries shipping to end user devices? Or is it common for library developers to offer/"sell" licenses to companies that wish to use GPLv3 code without having to disclose the full product source?
If I write some program from scratch, I can choose to license as open source under e.g. GPLv3, and simultaneously license it for a stiff fee for use in closed source applications, no GPL strings attached. I could even get tired of it all and sell all rights. If my project gets third party contributions, I'll have to make sure the relevant rights are transferred to me. That isn't exactly popular among open source enthusiasts, for obvious reasons. This was the path taken by e.g. Qt (of KDE fame) and the business model behind MySQL. Not very successfully, I might add.
As comments note, what can be copyrighted is a specific work, like a program or a text describing a protocol. If somebody studies the protocol description and builds a program implementing it without including any of the description (i.e., no example code or such), the result is not bound at all by the description's copyright. Same with "clean room reimplementation": A team studies the program and writes up a specification, which is handed to another team that implements the specification. The result is not bound by the original's copyright, as it legally isn't derived from it.