Programming talent isn't bimodal, in fact it isn't a question of traditional talent at all.
There are only two levels of programming ability: "Bad" and "Good Enough". In all but the rarest of edge cases, everything else is a matter of preference. You think that someone's code is elegant, simple, clean, optimized, etc? That's great, but only other programmers might care about those things. The only question that the majority of people care about is, "Does it work?"
Obviously code can be written so poorly that it causes noticeable performance problems, or doesn't work at a scale past the initial requirements. But that falls under the "Does it work?" question. Basically if I'm using it and it isn't annoyingly slow, whoever wrote it was "Good Enough". I don't care if they were a l33t 10X rock star ninja or some guy who just finished a "$language For Dummies" book.
It is genuinely cool to see code that is well designed and well written. And doing that consistently does require the innate talent of a special mind. But let's not confuse elegance with doing the job. Doing the day in day out work of programming is like being a journalist: the most important thing is getting the facts straight, not writing something pretty. The truly talented can do it with the rhetorical flourish of a poet, which is awesome, but not required.
All that most people ask of code is that it's good enough to do whatever it's supposed to do. If we want to turn it into a poetry contest then it's definitely a bimodal distribution, and most of us will end up on the wrong end of the curve.