Because we see candidates claiming that level of experience that cannot construct a simple for loop.
Unless they are references from people who those involved with hiring personally know.
It is usually a pretty organic process. If we get into it and question their coding ability, we might ask a few basic questions, like how do you declare an array or vector in C++. Do you use std::algorithm? Then possibly into C++14 territory. It depends on the position. On the other hand, if they breeze through some basic coding questions, it quickly turns into a discussion and feeling the candidate out in terms of fit. But if we get a senior SE come in, and we talk about previous projects and we get "I fixed bugs, reduced memory usage, and saved $X million dollars" that is a big red flag.
Sounds like your expectations are part of the problem.
Why do you expect someone 15 years out of university, working in the now enormously wide software space to have your pet questions memorized? C++ is well known for being too big and needing to be subset(-ed). And, why not realize that such a person could become an expert in those questions in less than an hour of googling and reading?
The bigger problem is that companies are not willing to invest even four hours of training into employees!
These folks with many "senior" level positions on their resume can't manage a task our last hire did in about 6 minutes.
1. People can't just take two weeks off to go code for another company.
2. With so many other candidates out there, a company is typically not going to bother with an "eccentric" who refuses to interview. (not saying you are eccentric, just that's how you'll appear next to the other 100 traditional "interview me I need a job!" applicants)
I've seen #2 play out in real life. Company interviewed a guy who refused to do any code on a whiteboard, even simple fizzbuzzy stuff, pointing to his multi-decade resume full of big name companies and high-profile projects as proof that he's good. The company's response was basically "OK, there's the door".
I for one commend "whiteboard refusers."
We typically need to hire quickly, and having to wait 2 weeks - and coach someone on all the different components, create accounts for them, etc. - is not "free" for us.
If you're that good you should blaze through the technical questions in half an hour, and give us all confidence we're not wasting each others' time.
Then again you're a freelancer to so it's a bit different to being hired as a contractor/permie. But either way, we want the hiring gap filled, not as something we have to revisit after 2 weeks before we decide whether we have to go back out to market.
Put it this way. You come in for an interview, refuse the tech questions and we're left thinking "this guy looks good on paper, so why doesn't he want to explain what a design pattern is?". Straight after you a guy comes in who answers the technical questions OK. Who do you think we'd hire?
It doesn't make sense anyway. In 25 years, the sheer amount of cowboys I have seen literally bringing down projects out of incompetence and lack of humility is staggering. And these guys were hired out of technical riddles.
As a Good Person, you should get taken on by clients who don't have this requirement while others who do lose you.
I've only done one of those tests in the last couple of years because I wanted the (not insignificant) pay rise and it gave me an opportunity to learn something. It's all about negotiating power (they had more).
But yeah, in general I don't have to bother with them. OTOH I don't see them as entirely negative because hopefully it should mean you'll be working with competent people (provided the tasks are small demonstrations and not full applications which smacks of incompetence).
I think that two weeks are a good time-frame to evaluate a mutual "love" and would also help better understand the soft-skill and how well the candidate fits in the company.
Those 2 weeks should determine whether it works out on other levels (e.g. are both parties comfortable with working each other) and if you do work in that time, you better charge for it.
As a consultant I have tried a variation on your approach. I've offered to work for a client for 2-3 weeks. At the end of which THEY get to decide how much I'm worth. I reserve the right not to carry on working for them but for those 2-3 weeks I will accept whatever they pay including nothing.
In over a decade not one client has accepted this deal.
Now, the GP says he will work first two weeks without pay? Simple to understand and accept.
It's always the clients who claim to be 'innovative', 'game changing', 'disruptive' etc. that are the most risk averse. They seem completely blind to the cognitive dissonance.
We're not architects, and nor do we have a certification system. There needs to be SOME way to probe a candidate's abilities, and it's not easy.
So, to answer your question, I will apply this approach from 2016.
I have 25 years of software development under my belt, I published a book, spoke at various conferences in Europe, have a Github profile (admittedly not very lively), worked for well-established enterprises and have great references. Why shall I still prove myself?
If I was a senior lawyer or an architect joining a new studio, I strongly doubt I would have to go through an interview to test if I can use the drawing table or if I know the body of laws of my countries. It is just ridiculous.
As I work as a freelance, my approach will be to offer 2 weeks of work on site for free. After the 2nd week, if they still think I'm good enough for the company, I will charge the 2 weeks, otherwise goodbye and no questions asked.