Why? To use it as a way to just look at our tech, get completely off track, and go down the tech rabbit hole. Good devs get really excited and talk about what they're using, what libraries they like, what they'd like to work with, etc.
Best hire I've ever made.
What they need is someone who is good at solving problems, which ties into your comment about dealing with bad situations. This is something startups eventually adopt once they mature past needing a web developer to just throw together a website for them, and on to someone who is more flexible and loyal.
So please don't reduce the importance of good engineering down to "puzzles". They are a good indicator of someone who has all those qualities you describe.
And i wouldn't limit anyone to the big 5. If you believe Google's interview is pure memorisation and no problem solving, don't interview with them. My point is a good interview knows the importance of problem solving, whether solved correctly or not, is about how you solve the problem, and so they design their interviews thusly. That's my point which is contrary to the common sentiment here that "puzzle" interviews are a waste of time..
This is especially true when really wealthy companies will teach you the technologies you need to learn. You simply can't teach a good problem solving skillset, though.
I know plenty of capital E Engineers. None of them have whiteboard interviews. They are expected to solve problems, but none of them are expected to draw schematics for a bridge while someone watches over their shoulders.
No other non-performance based industry has this kind of weird hazing ritual. Whiteboard interviews are nothing more than the current fad--they definitely aren't necessary requirements to hire "good engineers".
2. This part is more important. School is about a lot more than exams. Projects were usually about 50% of the grade in CS classes.
If you made it through 4 years of the CS program I went through, you know how to program, or you paid someone to go for you for all 4 years.
So yeah I'd take a B average from my school as proof that you know how to program.
But I wouldn't make it a requirement.
If they've worked at least 10 years, as a coder - it's VERY unlikely that they're a complete liar. Especially if you can call former co-workers, or look at code samples they have online on a personal github, or look at their post history on stackoverflow, or things like that.
Even a technical description of prior projects - is a really good indicator of whether they're competent.
Puzzle solving - on the other hand, bears little resemblance to actual job requirements in the real world. It's honestly a dumb way to vet candidates. Would I like to see if a candidate, out of a pack of 5 or so potentially equal candidates, has a better approach to creative problem solving? You bet. But I'm more interested in their inter-personal skills, communication skills, and their instincts towards the ethical challenges we face as engineers. (like: when things go south - and blame starts flying). Who do I want on my team? That's the most important question.