On which letter would you want to base the 1px gap? For example capital letters have no descenders so there is going to be a bigger gap with those letters and then you have the difference between ascenders and descenders so the letter ‘a’ is different from an ‘h’ or a ‘g’.
A font glyph is made of half-leading at top and bottom so there is space at the top and the bottom so that words can wrap and be readable. This will also vary as to what font has been used.
Notwithstanding the above then reducing the line-height will of course cause letters to overlap at some stage as can be seen in this simple demo.
To be honest I can’t think of a single use case where I would want text to touch when it wrapped. It may be that we need to see your example of the problem as we may be talking at cross-purposes:)
Not exactly the key but allows the line-height to work.
It looks like you were trying to change the line-height on an inline element and that will have no effect on the height of the line as that is controlled by a block element parent. A flex grid or display:block element are just some of the elements that create a block display and will allow the line-height to take effect.
Note that you may have problems making the flex item wrap as it behaves differently from normal block elements. Also in the demo by @snadyleiby the text only wraps because of the dashes in the url. If it was unbroken text it would not wrap at all.