One guy working for Amazon told me that majority of the developers are low skilled hence some kind of filter is needed and people who can't pass coding interviews are unskilled.
Personally, I hate "leet-code" style interview questions and nebulously defined take-home tasks.
The best interview questions I've had to answer are where you are given a series of contrived issues on an imaginary system which you have to diagnose and fix. It opens up the room for discussion and it's much closer to reality than fizz-buzz.
From the interviewer side, I've definitely encountered candidates who don't seem to know how to write software, so yeah, you have to filter with _something_.
I'm not sure there are any great solutions that work for both sides of the table, but at least if you know how the game is played, you can optimize your performance for it.
If you have done it a few times, it becomes trivial and this is of course also a form of memorization. What you are testing is if a developer has faced similar challenges before and most problems aren't as universal as we often believe. There might just be 0.5 hours of training that puts candidates on basically the same level.
There are maybe are a few tests that can check if a developer is able to solve any problem at all.
I am sure some codegolf form of FizzBuzz will impress most interviewers too. It is fun to do that, but not a required skill at all. Most leet code interviewers tend to be quite inexperienced if they don't know about and cannot assess the limits of their own knowledge. If they did, they would know that they pick people more or less randomly.
If a company looks for a developer for hard problems, they should look for an experienced developer in that field and pay a fitting wage in the first place. And if a position is that expensive already, a direct interview with other domain experts should not be skipped in any case. And sometimes a definite answer is only available after a few months of working together. There might just be very few shortcuts here, you cannot scale that indefinitely.
Aside that, companies are unlikely to have that many hard to solve problems in the first place. They just want cheap labor that is universally good and shove them in a position where they have to solve some Excel problem of management (which of course could also be infinitely hard in some cases).
I decided I didn't want that job if that's the kind of people I would be working with.
I think my point is coding interviews work both ways and you can tell a lot about a team by how they conduct them.
[edit - it's okay if you don't know what RPN is, the problem is they interviewer committed to a course of action he completely didn't understand instead of asking clarifying questions.]