Hehe, sorry. I took a look at the API documentation, and unfortunately, it tells very few about possible errors. I suggest to mention how sf::Packet::operator>> can fail and in which situations it's meaningful to check it. I can imagine that even a correct program might read until it arrives at the end of the packet (as an alternative to checking the packet size) -- for example, if the packet contains just a dynamic sequence of elements.
I also wondered why the socket's send() functions take a non-const reference to the packet (sf::Packet&). Here I did look in the source code, the reason seems to be the virtual onSend() and onReceive() methods that may modify the object.
Anyway, thanks a lot for the answers!