> As a programmer, I'd be happy in a team to be the only programmer as long as the rest of the team are experts in their domains.
As someone in that position right now, let me just tell you that it's not all roses (not that I think you'd necessarily assume it was!). For one, you have to deal with the stigma of being 'the nerd' in the team. You'll also end up doing a lot of menial tasks because "you're the technical one" (e.g. trying to fix the printer, explaining basic tech to other members of the team).
Finally, most importantly, other members of the team don't really understand what you do. They might devalue it, expect you to complete tasks in an unrealistic amount of time, or get frustrated when you're the bottleneck.
There can be benefits of course — you can probably plan your work yourself without being told, quite as much, what to do — but, contrary to expectations, I've found it quite problematic: you are in a very isolated position.