In ML everything is a tradeoff. The article strongly suggests using dot product similarity and it's a great metric in some situations, but dot product similarity has some issues too:
- not normalized (unlike cosine simularity)
- heavily favors large vectors
- unbounded output
- ...
Basically, do not carelessly use any similarity metric.