hl-line mode adds an overlay face to text of the current line. The hl-line usually only replace the background color of the text to another color which is similar to default background color with small diffrence. It works well for text with default background color, but not for text with non-default color. The latter usually is highlight faces like face for TODO in org-mode, matched items in search results. They have reversed fg/bg colors with default face. Their background colors are similar with foreground color of default face. Their foreground colors are similar with background color of default face and background color of hl-line. Then if hl-line changes background color, then their foreground and background colors are too similar and make the text hardly be seen. Text with these faces are important to user. But hl-lime dim them and even makes them can't be seen. If hl-line ignores these text(with non-default background), then it will be good. Tried with 'distant color' for hl-line face, and it didn't work well for many colors. Even if it works well, it is not perfect solution for this problem.