1. When you need to communicate across the network and don't have a library to do it for you.
2. Troubleshooting
3. Insights. Knowing how things work can sometimes give you big insights into potential solutions or pitfalls to avoid
Additionally, tuning/optimization when dealing with high-latency networks, possibly with more frequent packet loss than you'd get in a local data center (think data replication from Hong-Kong to London in a global bank, etc).