It's becoming more diffuse by the day.
I'll give you an example: the project we're working on right now is a mess. Literally a mess. There were (and are) some complaints, but the users got used to the system. Hence, the results of the user tests weren't as bad as expected.
So we ran usability heuristics and based on those heuristics (or "best practices" if you'll), we created an entirely new prototype. Then we tested again with users. This time, the results were almost perfect. We confronted them with their previous input, and they basically said, "We didn't know it could be done any other way."
This isn't to diss research; after all, we're a research company. My point is that "best practices" are best practices for a reason: They've been researched before. Extensively. Thousands of times. So if you compare a test with 3, 5, or 10 people to thousands or millions of tests, you'll get the same result in most cases. But that doesn't mean you shouldn't run tests at all. Personas and heuristic analysis are the least you need to do, as well as user flow and user journeys, even if you can't test them with real users.
And finally, "old school" research is... "old school." We test with AI and Big Data whenever possible, and the answers a person gives in a usability test don't necessarily match what they actually do when using the app or website. As a matter of fact, I can tell you that as an average and general rule, you'll have a deviation of around 20% in an ANOVA, which is a lot. In other words: if you have 50 features to test in a site, 10 of the "already tested and approved by users" features will actually be wrong.
As for your last question, I agree 100% with what Izquierdo said in her excellent response.