Yes, very interesting.
By coincidence I am also one of those boffins with qualifications and experience in Educational Psychology, but I won't get all technical about test validation techniques!
Most of your questions are good, I reckon. Some need work. All these questions have 'face validity' in that they look as though they'll distinguish between good and bad SQL Developers, but you will need to weed out the questions that have no relationship to whether a developer knows his stuff generally . Your most obvious wrong'un is the one about the HAVING clause. One can have a good and fruitful career as a SQL Developer without knowing the useless fact that a HAVING clause can be used in a select statement without a GROUP BY.
To winnow out this sort of question and other types of question that don't do what you think they do, the easiest solution is to take a reasonably large group that are still struggling with SQL and a reasonably large group of people who are acknowledged to be good at it and give the test to both. If a question is almost always failed by the neophytes, and is passed by the experts, it is a good one. If it isn't passed by either, it is wastefully difficult. If both groups get it then it is too easy. If the neophytes get it right and the experts get it wrong then oh dear, oh dear out it goes. You are left with just the few that distinguish between the good SQL people and the ones who aren't.
Curiously, it doesn't usually matter much if you actually let slip the answers, because the really good questions need a good understanding to answer them. The clustered index one would have to be entirely memorized unless you understood. Questions about statistics are good that way too. I like questions that bring out the way that SQL is only a specification of the result that you want rather a specification of HOW you get that result, so anything about the query optimiser and performance, or cacheing are good. For some reason I've never quite understood, questions about how you go about finding the difference in the data held in two tables with the same definition never fails to separate the sheep from the goats