If "configurations" and others are using a "live" DomainObjectCollection, what about "allprojects"?

I’m starting to understand that several “collection”-like things in Gradle are “live” collections, being that they implement DomainObjectCollection and NamedDomainObjectCollection.

However, I see that “allprojects” appears to be just a “Set”. Doesn’t “allprojects” have the same dynamic behavior that the other collections have? Why are these different?

Because projects cannot be dynamically created and added to your project hierarchy, unlike many other configuration model components. The project hierarchy is constructed during the initialization phase as defined in your ‘settings.gradle’ file. This is effectively immutable, so there is no need for live collection capability.