And if you're talking compilers, clang is in a lot of areas far superior to GCC, certainly from the point of view of a developer. It is just a joy to work with. A lot faster compile-times, certainly when using template code, and actual meaningful errors which most of the time point to exactly the right problem. No 4 pages of meaningless spaghetti errors for 1 forgotten ";" in old template code you haven't changed in months, which GCC compiled just fine just because you didn't use that specific specialization anywhere until then. I've been there, happy hunting if you're in that situation. I can only recommend setting the CC environment variable to "clang" and CXX to "clang++" in a case like that, it'll save you some time. It errors catches any template code, used or not, unlike GCC.
In fact, clang right now is my default compiler in my development environment. And while clang's 'scan-build' static analyzer isn't as far as I hoped, it does some things well and is improved every release. Something like this is doesn't even exist in the gcc tool-chain. If more and more developers discover what day-to-day advantages clang has over GCC, it will get used more and more, at the expense of GCC.
GCC still has an edge over clang regarding optimizations and platforms it compiles on/for, but LLVM is a lot more flexible, and has a cleaner code-base (which is normal for such a young project). Don't ridicule clang, because it WILL catch up, and this will happen faster than most people expect.
So GPL winning? As long as developers stand behind it, and I'm afraid it's going to lose ground here.