I wouldn't call those "smart people". They're not much beyond mediocre, but see overcomplicating things (which in many cases they will dogmatically explain away as being a "best practice") as a way to make it appear like they're smart.
The smartest are those who can make complex problems look simple, with simple solutions.
Disagree. When you look at a "less is more" engineer next to a "I need to solve the general case with the perfect API and refactor the foobar" after 6-12 months you'll notice that the former has a clear pattern of delivering, and the latter... usually doesn't.
The smartest are those who can make complex problems look simple, with simple solutions.