Basically if you use libs in a plugin, precompiled or not, we have to assume that it’s going to be applied to a project which has exactly the same model, which might not be the case.
buildscript blocks as well as the plugins block are evaluated before the project extensions are loaded, so before the catalogs are available. It’s not possible yet to use catalogs for this purpose. The initial implementation to support versions in plugins has been removed, but we’re planning more work on this.
the settings file is the one loading/defining catalogs. This means that the plugins of the settings file itself cannot use catalogs, because they are not available yet. Chicken and egg problem.