Plus they will spend time before and after the interview discussing your qualifications, performance etc. It comes out about even.
If the job doesn't work out, they lose small% of potential productivity, while you will lose 100% of your income.
Companies have numerous employees, but you only have one employer. You bet everything on your employer, they only bet a small part of their hand on you.
What if a company gave you an itemized bill after your interview? You're still exchanging something of value for their time; is that reasonable or ridiculous?
Of the three job interviews I've traveled for in the last year, all were paid by the company 100%.
A company would have to be pretty damn unique in order to justify having candidates pay for their own travel + lodging.
Regardless, companies across just about all industries that hire from remote talent pools will pay for travel (consulting, finance, government, NGOs, banking, accounting, manufacturing, insurance, you-name-it).
Whether or not a given company expands its talent search to include workers in distant locations is bound by several factors, none of which are unique to "SV and Microsoft".
I doubt there would be anything wrong with saying "we maintain open source project X and we only hire people who have made submissions in this project that we have accepted. If you want to be considered for employment, you must first get involved in the community."
Yep. That basically amounts to an application fee.