If these companies were hiring a cook they would require 3 years experience working on an Ace cooktop, 5-years experience with Acme Food Supply, and be able to demonstrate the restaurant's recipe for their signature meat dish before being considered.
Companies didn't come into existence with their particular toolsets: they learned them, and quickly. Then they refuse to consider hiring anyone who doesn't already know them in depth.
I've seen certain fortune 500 companies advertise software engineering job positions that do not require any experience, do not list any requirements (except high school) and job description is as vague and all-encompassing as desire and ability to write software. That does not make getting that position easier to get.
The biggest unwritten requirement is if you'd want to spend and interact 40+ hours a week with that person. That is why most women programmers no matter how inexperienced will always get hired very easily. Programming ability matters very little when the guy is a weirdo and awkward to deal with.
Not that I'm implying you're a weird or anything, but when a guy walks in the door, people fear for the worst. Until you get to know someone, guys think other guys are creepy or bad. Thus, it is very easy to get a friend hired in your company but if a friend doesn't want to give you the recommendation in his company, that probably means your friend doesn't like you and wouldn't care to work with you.
Despite what Slashdot and their parent Dice would like you to believe, job hunting is largely done through connections. If you are reading job requirements and fuming over not enough experience and what not, you're probably exhausted your contacts. Employers also fear the worst of the applicants coming through random job searchers and will scrutinize them more than if they came through connections.
It is blatantly false that companies will not consider hiring anyone who already doesn't know the tool in depth. The biggest tool to learn is the company software repo, the business and culture of the company which is the least documented. Any commercial tool can be learned in weeks or months since there are thousands of resources on it. Learning the company source code base and all the ways the company works is the hardest part.
My psychology book said that in most cases people make up their minds unconsciously and then go find reasons to justify it. I read somewhere (and it could be completely false) that an interviewer decides to offer a job or not very quickly and spends the rest of the time confirming it. I have found that it's the weird things that get people hired. If they were in the same fraternity, attended the same university or some other commonality. I hate to say it but if a team leader is Chinese, you will find that a lot of junior Chinese developers and this is because ethnicity is a super-obvious observation. Sometimes, entire teams have hidden commonality like an fraternity, an ex-employer or a university.
Anyway, I've been turned away from many jobs that I was qualified for and had the technical skills for. But, if I want to land that job right after an interview, I have to have connections or be a super-charming person. Everyone thinks they are geniuses in their own right but others think differently. The most qualified candidate isn't the one who always gets hired. In the end, in software development, it is the team effort than the individual that matters.