It's because E(#offers) = #applications * P(initial_contact) * P(successful_interview | initial_contact)
The ~5 companies approach tries to optimize P(ic) and P(si) at the expense of #apps.
The 50 approach optimizes only #apps because it assumes P(ic) is low, and disregards P(si).
Especially P(si) is very important because the interview's purpose is to determine that you're a good match for them. If they're just another company you spammed an application out to, that becomes very obvious.
The ~5 companies approach forces you to have already selected them because you think there's a solid business case for them to hire you. And you can make that case during both your initial contact and the interview, thus maximizing P(ic) and P(si).
> 999 times out of 1000 you don't have a clue to a company's current business needs just by looking at public information
I'd say it's more like 9/10, but that absolutely makes the case for the ~5 company approach. You're filtering out the ones that have a poor recruiting process.
It takes a lot of time to put together a good application and you have to focus on companies that will not only be responsive but follow through all the way to the hiring decision.
So focus on companies that make it clear what they do and what the position entails will tend to maximize P(ic) and P(si).