Every team I've been on has criticized each other's code equally harsh. If coding standards weren't followed (whoops, you missed a space between parenths, try again!) they'd be called out, if someone had a better idea for an implementation / approach, they were free to speak up and heard out. When I started out on one team I thought I was being unfairly criticized, until I saw others make the same mistakes I was and boom, they received the same feedback. As time went on and I was able to better follow agreed upon standards, and my implementations (and test cases) improved in quality, I was called out less and less, unless I made a mistake again. The focus in the reviews was always about the code and never who wrote the code - this is great because it helps break down the idea that the criticism is about the person rather than (correctly) the inert code.
The point I'm alluding to in my OP is to is similar the debate/discussion about AI and spirituality [Jaron Lanier's essay here - http://edge.org/conversation/the-myth-of-ai]. When people frame this tech / gender discussion, it's always "gender issues in tech" and I think that is (pedantically) wrong. The technology (source code, compiler, CPU) have no native understanding of a user nor their identity. They treat the input exactly the same. A node interacting with another node. So it's not really "gender issues in tech" but rather, "gender issues in society, but with a focus on the technology industry / market" It's a pedantic point, but by not being explicitly clear in definitions and discussion framing, there tends to be a leakage of irrelevant facts/statistics/feelings that contaminates discussions and derails productive conversations. When that happens, discussions fall back into their usual talking points and counter-points rather than focusing on producing solutions.