If you look for information on the function geom_bar with ?geom_bar, you will see that the defaults arguments for this function are as follows:
geom_bar(mapping = NULL, data = NULL, stat = "count",
position = "stack", ..., width = NULL, binwidth = NULL, na.rm = FALSE,
show.legend = NA, inherit.aes = TRUE)
with
width: Bar width. By default, set to 90% of the resolution of the
data.
So I imagine that your 3rd graph has a different data resolution? If you want all the bars to be of the same width, set a numerical value for the width argument in the geom_bar function:
ggplot(b, aes(x = Sex), weight = rel_mean) +
geom_bar(position = "fill", width = n) +
facet_grid(rows = vars(Race))
(and replace n by whatever value works for you of course).
I cannot test it without the data, so please let us know if this fixes your problem.