Good question, I have no idea, I have have all kind of boards with male headers, it just seems to be the way thing are done.
On a practical front if you are connecting boards and equipment with flat ribbon cables then you don't want the male pins on the ribbon cable where they are likely to get bent and shorted to other things. Think IDE hard drives and all kind of other things.
Perhaps it make a bit less sense if the intended use is for prototyping and poking odd wires into the header where sockets would be more convenient, like on the Arduino.
Memory in C++ is a leaky abstraction .