honestly, this is one of those things that sounds obvious once someone points it out, but so many of us overlook it in practice. Google's Reasonable Surfer model makes perfect sense when you think about user behaviour - a link tucked mid-paragraph where someone's actually reading is begging to be clicked, whereas one sitting at the bottom of a page after the content ends is basically invisible. Plus, the surrounding text gives Google the topical context to understand why those two pages belong together.
i had a client about six months ago - zero contextual links anywhere in their blog posts, just a related posts plugin running on every page. Screaming Frog showed their deeper articles were barely getting any link equity because the plugin kept cycling the same five or six popular posts over and over. Manually swapped in relevant in-body links pointing to the right pages, and within three weeks those articles started picking up impressions in Search Console. That shift alone proved the point.
That said, i wouldn't rip the widget out entirely. Someone in my network ran an Ahrefs test on their own blog, and while the results were small, the interesting part was that the related posts surfaced content they never would have naturally linked to from the body. So it's a decent safety net for catching things that fall through the cracks.
the real mistake I keep seeing is people treating that widget as their entire internal linking strategy. It's not. It's a fallback. your in-body links do the actual heavy lifting for rankings and for helping Google map out your site structure.
If you're on WordPress, throw a crawl with Screaming Frog or Sitebulb and check which pages are only getting links from that related posts widget. those are the ones crying out for proper contextual links first.