The idea is to support a development model where developers can check out only those portions of the source tree they wish to modify, and fill in the remaining pieces by using artifacts and artifact metadata. This would help reduce build times, as prebuilt artifacts can be used most of the time.
There might be issues with changing code that is consumed by entities not in the source tree. Gradle should warn or error out in these cases and require that consumers of a change be checked out also.
I don’t know how common this use case is… it might well be not worth doing, as many developers need to have the complete source checked out if only to give their IDEs full visibility.