To the validity of your assumptions:
the SO community is representative
The SO community is representative of something, but it likely isn't representative of all programmers everywhere, especially when you begin constraining what "the SO community" means. This comes from a number of different factors:
SO is an English speaking site.
While it seems to be true that English is the lingua franca of programming, there are a large number of programmers out there who find asking and answering questions in English to be a major barrier and therefore don't participate on SO or don't participate as much as they might otherwise. This will tend to skew your results.
Not all programming technologies are equally represented on SO.
Many technologies that were established well before SO even existed already had other support mechanisms in place, like email lists, and to a large extent these other mechanisms are still used to handle questions about those technologies.
Another element of this is the "positive feedback loop" effect that is created by more and better questions for a technology being created on SO. As more people link to SO questions, SO gets ranked higher and higher in search results for a particular technology, driving in more users (and content generators) for that technology, which just strengthens that technology in the SO ecosystem, possibly disproportionately to the actual use of that technology. There are a number of other factors that also feed into the feedback loop, but the net effect of swelling a technology, regardless of actual usage, is still there.
The more someone cares about a community, the more involved they will be.
The reverse of this statement is also true, and it essentially means that SO involvement is much more likely to come from the top 50% who most care about programming than it is from the bottom 50%. To put it another way, the SO population is going to tend to be skewed towards people who care more than towards people who care less.
the tags a SO user collects as a result of asking/answering questions are representative of her knowledge
I would agree that the tags on a question to which a user provides an answer are more likely to align with that user's knowledge base, but I don't think the tags on the questions a user asks correlates with their knowledge in those areas. Instead, I would posit that the tags on questions a user asks relate to their interests and/or activities.*
The "peer pressure" (and rep pressure) to provide a good answer, rather than a bad one, will tend to discourage those with limited or what they perceive to be lesser knowledge in an area from answering a question. At the same time, the "fastest gun in the west" effect means that a user with some knowledge of a topic may decide not to look at or answer a question simply because someone else already has given an answer. There are likely a large number of questions that many people could answer equally well, but most people chose not to because someone had already answered the question completely.
Both of these effects will tend to skew the representation of what a user "knows" based on answers to questions in a tag simply due to competition. Again, it's a case of those that are most involved being "promoted" over those that are less involved.
In order for any of this to be accurate, however, the base assumption that you have to have is that tags on questions are accurate. I think most tags are fairly accurate, but there is definitely a substantial amount of fuzziness there.
* Yes, long-term interests/activities are likely to impart knowledge, but it can't be used to measure current knowledge