I freelanced periodically over the last 20 years or so, mostly a decade ago doing mobile app dev when it was elance.com/odesk.com/freelancer.com. Some observations:

1) Each freelance service is uniquely terrible. Most are winner-take-all, require excessive effort from both clients and contractors to get onboarded, and push skills tests onto people with years of experience. It looks like it all went to upwork.com, which is fine, but a highly-consolidated service like that will always cater to clients first, because they have the money.

2) Freelancing is the antithesis of setting boundaries. Being an army of one is hard. Each client adds perhaps a 10% chance of you getting called with an emergency months or years down the road. For business types who thrive on sales, that creates a wealth of new opportunities. But for maker types who just want to do important work, the feeling of obligation can quickly become overwhelming.

3) Incentives work against both client and contractor. Clients are willing to pay 3-4 times more for some kind of guarantee that their vision will be realized. Contractors are willing to charge 3-4 times less than the going rate to achieve some semblance of autonomy. These are both contrary to what economics teaches. The result is a race to the bottom on price with increasing marginalization of the contractor's time. The client goes broke over multiple attempts while the contractor becomes an irreplaceable.. commodity.

The market is so saturated now that it's hard to see how things could get better. Then again, google was once the dominant search engine that could never be dethroned. So here are some ways to fix the above dysfunctions, respectively:

1) Contractor-first freelancing. Joining dev teams or getting added to existing contracts should be frictionless. Less vetting, more letting track records speak for themselves. Better ways of breaking down projects into smaller, easily completable subtasks.

2) Anonymous by default. Direct lines of contact are opt-in only. Middlemen would be other contractors performing matchmaking duties, never gatekeeping.

3) Freelancers choose clients (opportunistic matchmaking). Rather than appealing to the sensibilities of the client, who is generally nontechnical, contractors would look for work that's most appealing to them. Completing task A results in payment B, period. No more waiting around for negotiation or money to transfer to bank accounts, just get real work done now and get paid immediately.

I've barely scratched the tip of the iceberg here. Personally, most of the paying work I do revolves around fixing other people's mistakes that I would never make. Psychologically, that takes a toll. It trains the mind to see problems rather than solutions, gradually wearing away one's creativity and motivation. To the point where I've had a gaming PC and Unity all set up and ready to go for years now, but when I go to turn it on to make something to earn a little residual income, I get so demoralized that I just turn it off in disgust. Competition has gotten too fierce. Quality of life is suffering as a consequence. Maybe that's just me.

Anyway, most of the really great contracts in my life have come from dumb luck. The first gig with my old partner came from hanging up flyers with tear-off contact info at the bottom around the local college. I worked at an agency I loved for 4 years because of a Craigslist ad. Right now I'm contracting for someone who found me on a local tech Slack for my city. It kinda stinks to be at the whim of serendipity, but truthfully that's the stuff that life is made of. You just gotta put yourself out there and keep a positive attitude and take what comes along. Just don't let yourself get taken advantage of early on like I did. Learn to communicate and set boundaries before getting burned out (exploited).

So the question remains - is there any real freelancing still on? (I'm not talking platforms here - I wouldn't go there for several reasons).

Sorry I just saw that after writing this, but I agree with you, so I'll go ahead and post this to illustrate what some of those reasons are, for me.