I like leetcode, and I think the practice is defensible. To be fair, I've made a lot of mental loops to get there.
However, I'm also sympathetic to the "leetcode is useless because you don't do it in your day to day" camp.
I used to lean more towards my mental loop side. But nowadays there has been a big question due to a recent job interview I did.
I recently applied to become a data analyst at a F500 company. It seemed fun and the pay was marginally better than what my software engineering career has been (as I'm not from the US).
I remember that when I applied, I didn't even know what a data analyst was. However, they gave me a technical assessment and I aced it.
Zero prep
Completely aced it
They told me that their work sample round was indicative of the job, so if I could do that, then according to them: I could do the job. It took me 4 hours in total.
Of course, there are tech companies that do this. However, I was a bit stunned that this was so easy. To be fair, getting in wasn't easy as I applied to some data analyst positions for fun to other companies and they all mentioned "you have 0 years of experience in this role". So I was lucky in that sense, and I was also lucky that they were willing to look at the person as opposed to treating me as a number.
There have been 2 tech interviews so far that went the same way. With that I mean: 0 prep, just using your skills and you got in based on those skills.
Look, I like leetcode, but after my recent experience I'm just not sure if it's the best way to assess talent. One could make the argument that it's an easier role? But I don't think it is, I find CRUD relatively easy too which has been most of my job. Though, there was this one week where my leetcode skills really helped as the company had a genuine novel leetcode hard style type of question.