The points are distributed more or less randomly along the x-axis, they are spread wider when more points are in the range. So the points at 2.25 aren't "more men" than the points at 1.75, everything in the cloud around 2 is male, the other cloud is female.
You could also use categorical labels on x stating "female" and "male" directly.
Kind of. The idea is to avoid overplotting, to show all data-points even though they may overlap.
If you would replace it with geom_point() you would just see a black line between 40 and 60 as many data-points do overlap here. With the beeswarm the overlapping points are moved away along the x-axis. The width represents the degree of overlapping and with this the distribution.