Api source set for java-library plugin

I’ve looked at the documentation and distributed sample projects, and i’m still at a loss to figure out how to leverage the java-library plugin.

I understand the idea is to introduce an api configuration, along with some intermediate configurations, but what I don’t understand is why there isn’t a completely separate api source set/output jar on which the main or implementation configuration and source set is made to depend.

I guess what I am expecting is physically separate output artifacts, and therefore source paths for the api and implementation, just as there is a difference between implementation and test. I know this is something i could do myself without using the java-library plugin, but I want to understand why this isn’t something that is offered by default, and what the benefit of distinguishing between api and implementation dependencies is, if in the end you only ship one monolithic artifact anyway.