Honestly, this tracks with what I've seen. Pinecone's pricing is deceptively simple until it isn't. The per-million-vectors cost hits different when you're doing frequent updates.
One thing though: self-hosted Milvus means you're now responsible for backups, replication, security hardening. That $200/month saved is real, but make sure you're actually accounting for the ops tax before celebrating. We switched back after a ransomware scare exposed how lightly we were treating infrastructure.
That said, if you have the bandwidth to run it properly, Milvus works fine. Just don't underestimate the operational cost in your analysis.