You're talking about programming - I'm talking about certification of software engineering. They are two separate-but-related concepts.
A certification should not be "Joe knows the syntax of language X according to some test" - it should be "Joe is familiar with this range of techniques that can be applied to produce higher-quality software". These are reasonably easy things to test, and their presence or absence is not related to intelligence or programming skill.
Whether (as employees) these programmers actually are expected to apply these concepts is irrelevant. The fact that everyone knows what everyone else knows leads to a basic assumption that you either are applying some good software engineering techniques, or you have examined the reasons why you are choosing not to apply them.
The problem is that we have developers who are perfectly capable of writing good quality software according to some development practice, and developers who don't even know these things exist. If everyone knows what everyone else knows (and users know what developers are expected to know), then we start getting some pretty good assurances that people have at least considered these issues.
And that's worthwhile.