Early on I treated anchor text like a keyword-stuffing opportunity. If the page was targeting "commercial fridge repair," I wanted every link to say exactly that, because it seemed obvious that matching anchors would push the page harder.
The site I did that to stopped ranking. Not overnight, it climbed for a few weeks, then slid past where it started and sat there. Nothing else had changed except the links, and when I pulled the anchor profile and looked at it as a whole instead of link by link, the problem was embarrassing: something like seven of the last ten anchors were the exact same money phrase. No real site earns links that way. Real people link using your brand name, the page title, a raw URL, or something clumsy like "this guide." I'd built a profile that only a manipulator would build, and the algorithm reads that profile, not the individual link.
That taught me the rule I still use: the exact-match phrase you actually want to rank for should be the rarest anchor in the profile, not the most common. The bulk carries the brand name and natural variations, plural, partial, question-form and the precise commercial anchor gets used sparingly, on the strongest, most relevant placements, where one carries more weight than five weak ones ever could.
So relevance and brand language aren't a tradeoff against over-optimization. Brand and varied anchors are the protection, they make the occasional exact-match look earned instead of engineered. Now I plan anchors by asking what a profile would look like if nobody was optimizing it at all, then I stay just inside that.