"you should try to find out if any of these failed candidates are actually skilled developers but there's something about the questions or interview that's messing them up?
hard to think of a halfway competent developer failing to answer
"where I ask them to implement a simple function, implement a recursive function, write a simple SQL select (join across two tables), and create a simple object model (how would you represent a car as an object)."
in about a minute or so all told, even verbally, over the phone.
"YouTube phone interview because they asked me to "say" a function for finding the longest common subsequence of a set of strings."
This is (ever so slightly) different from OP's ultra simple questions above , but otoh , YouTube has a lot of tough algorithmic problems to solve. I am not sure what position you interviewed for, but the question itself sounds decent for a position that could involve algorithms and searching and so on. Now if the interview were for a job involving "code up a basic enterprise app" I can see how it could be inappropriate.
All that said, I am not a fan of extended phone interviews , but asking very basic questions (as the OP seems to have done) eliminates a surprisingly large number of looks-good-on-paper-but-can't-code-for-nuts type "programmers".
The key to not getting depressed is not to waste any time on people who can't answer ultra basic questions. If in 30 seconds you feel someone is too incompetent, shut the conversation down politely. Spending long periods of time with incompetents is depressing.
One solution is to send a (moderately complex) programming problem by email and ask them to send code back. This will weed out a lot of people without wasting your time.