The GPL in practice hasn't always resulted in more freedom compared to other licenses. For example, GCC is purposefully designed to be non-modular, to prevent people from developing proprietary front ends. You may agree or disagree with the trade-off, but observe the LLVM project: you have the freedom to manipulate IR outside the compiler. With GCC, you have permission to manipulate IR outside the compiler, but they've gone out of their way to make it difficult for you, so you might as well give up. LLVM's license makes the idea of impeding proprietary front ends a non-starter.
But that is not a result of the licensing, it is a result of a design decision. While it may very well be that such a design decision was made to avoid GCC being used with proprietary front-ends (along with the fact that GCC is simply an older project), it does not provide an argument against GPL, at best against some choices made by the FSF. And after all, the LLVM license is the reason why people have to hope that Apple will open Swift, as opposed to that being a fait accompli. And the LLVM license is the reason why hardware vendors will be able to build proprietary back-ends. In my book neither of these facts increases freedom.
as much as i dislike GPL, i think that the success of LLVM/Clang comes from being a much superior platform to GCC. having built languages targetting both GCC was frought with "Who on earth implements this like this" moments. LLVM was painless, everything was obvious and the level of obfuscation is minimal... the documentation was helpful occasionally, rather than vitally necessary.