One thing I'd add is that provider selection isn't just a model decision anymore it's an architecture decision.
Teams often compare token pricing and benchmark scores, but production costs usually come from everything around the model: retries, fallback routing, embeddings, observability, caching, rate limits, and vendor-specific behaviors.
We've also seen teams benefit from treating the LLM as a pluggable component behind an abstraction layer from day one. Even if they never switch providers, that flexibility makes experimentation, cost optimization, and failover much easier later.
Good breakdown of why "best model" and "best production choice" are rarely the same thing.