My answer would be that in the bulk of uses of ggplot(), only a single data source is necessary, whereas the mappings often change in every layer. Also, layer functions in ggplot() are not like other tidyverse functions in that they do not return an object that is available to be further processed so much as an object that is to be added to the current plot.