The absolute worst is when a monospace font puts fi into a ligature with a width of 1 character, entirely defeating the purpose of being a monospaced font.

Can you provide an example of the font doing this? Substitution of individual characters with ligatures is in my experience a feature of the typesetting/display engine (which decides how to represent the "bytes" as glyphs), not the font itself. Indeed, this ligature substation is often something you can toggle in whatever application you're using if it's capable of doing the substitution at all.

Overpass Mono does it:

https://fonts.google.com/specimen/Overpass+Mono?preview.text...

It's been fixed in Red Hat Mono.

That looks so wrong. Why would they do this?

I suspect is just a bug: the ligature tables were copied from the regular variant, and perhaps no one noticed for some reason. Maybe the assumption was that the renderer would turn of ligature processing in monospace mode at the time, and the reference renderer did that?

I can't find any examples now, but I'm positive that there have been "coding" fonts which do this that have hit the front page of HN. Highlighted as a feature in the screenshots, even.

Another example of form over function, to the utter detriment of function, IMHO.

Perhaps Fira Code?

https://github.com/tonsky/FiraCode https://news.ycombinator.com/item?id=10764527

But I think it's different: it uses double-width characters for two-character ligatures, so this doesn't break alignment.