Many of us have presumably seen our share of brilliant people flame out because they could not adjust to the ambient value system, and figure out how to get the right things done. Often these people flourished in a prior context: school or another company with more or fewer constraints.
Assessing that context match is hard. The most successful way is to have a mutual trial period (ex: internship). Failing that, in interviewing for a full-time position, the closest you can get seems to be by trying to simulate what it'd be like to work together. That's why you try to throw them at coding exercises or difficult problems. "Brain teasers" are silly but coding challenges where you see how far they can go with some direction are actually pretty useful. They give you a large dynamic range within which to quicky hone in on someone's current skill level. More interesting than their current skill level is how quickly you think they can progress, and so that's what you try to simulate in an interview.