The whole GPL/LGPL dichotomy requires that GPL programs not be usable as part of commercial software. They can discourage linking through copyleft, but they also need to not let their code have any other API, such as an LSP for editors to get type info. Gcc has been hampered by not having import/export between passes for decades. The LLVM ecosystem shows how useful that is.