The main issue with extending Gradle native capabilities is related to all of the different models to support component type (app vs lib), variants (and their dimension), source sets (implementation language), and produced artifacts (shared lib, static lib, executables, object files, etc.). All of these concepts/models are pretty well established but the issue comes with how to implement them. The software model focused on extensibility (among other things) but that is essentially deprecated. The new native plugins went with a closed approach meaning not much can be reused. Android implemented their own support. Nokee also implemented its own support.
The issue with reusing the implementation is what-if the approach needs to change. In Nokee, we are looking at an hybrid but we aren’t exactly there yet. The hybrid approach would be to compose using the interface and let Nokee provide the implementation (regardless of what the implementation was chosen). It’s a bit the approach Gradle also choose but there a lot of things missing to make it successful. Hopefully, Nokee and Gradle can meet somewhere in the middle.