"A GP is certainly not a neurosurgeon, and therefore cannot possibly do the same job. Ditto with embedded programming vs a "front-end" developer."
Cannot possibly do the same job? Really?
I've done embedded programming, front-end web programming, back-end web programming, desktop app programming for Win32, Qt/Linux, game programming, OS system level programming and currently do mobile app programming, among other types of programming. And I'm not particularly special, I know quite a few other people personally who have done various combinations of these jobs and others at a high level of skill in each specialization. That's sort of my basic point is that really good and flexible programmers are not fungible products you can really ascribe any productively multiplier to.