I think it's perfectly reasonable to have a "programming" expert. To me, that's someone who has such a broad base of experience with different languages and tools that they can shift between procedural, object oriented, scripted, functional, and other language paradigms with ease.
An "expert" programmer is someone to whom the syntax of a language is "just details" because they already have a grasp on how the language works and what it does based on minimal summary points of it's features.
That's not to say an "expert" programmer will produce perfect code in any language that gets thrown at them, but that they can be up and coding at speed in a matter of days or weeks, producing code as good as and at a volume equal to people who've already had a few years experience with the language or toolkit.
Really, an "expert" is someone who is an expert at learning new things, not someone who has experience with everything out there. They're the people who are so confident in their abilities that they'll jump in feet first on a project using a language they've never coded in with a framework they've never seen, and be confident that they'll still meet the deadlines.