Depends how you define opportunity. Getting really good at something is 90 % putting in a lot of hours and 10 % talent. Putting in a lot that don't pay isn't for everyone, while the really great devs will do a lot of tech work outside the job as well.
Perhaps one reason that there are so many low-productivity developers is because there's not as much opportunity to specialize and hone one's skills?