Vectors from the text-embedding-3 models and from ada-002 come back normalized to unit length. For unit vectors the dot product and cosine similarity are the same number, so computing a full cosine with two norm calculations per comparison is wasted work in a hot loop, and choosing inner product as the index metric gives identical ranking to cosine at lower cost.
The assumption stops holding the moment you transform the vectors: averaging several embeddings into a centroid, adding vectors, or truncating dimensions all produce something that is no longer unit length. Re-normalize after any such operation or the similarity scores stop being comparable across items.
It also does not generalize to other providers. Many open models, including some sentence-transformers checkpoints, return unnormalized vectors, and there the metric choice genuinely changes the ranking. Check the norm of one vector at startup rather than assuming, since the check is two lines and the failure is a silent quality regression.