We were obligated to provide source code for the LGPL parts corresponding to official releases. We were not obligated to make it a community open source project with a live repo, or to accept code for ports to non-Apple platforms. We chose to do those things.
I do like the fact that we now have two competing compilers and llvm brought a lot of innovation, but everyone know that only reason Apple invested in these projects is to avoid GPLv3.
And yeah at the same time Apple's locked platform and Webkit-only policy saves us from Chromium monopoly over the web and helps Firefox live. So yeah world is not just abstract "good and evil" obviously.
Okay it's not the only reason, but certainly one of primary ones. All proprietary software developers had issue with GCC long before switch to GPLv3. GNU declined all attempts to make compiler IR accessible for 3rd-party software which would make proprietary extensions possible. And yeah it's the reason why LLVM take that niche.
Also GPLv3 was officially announced in 2005. It's was just matter of time before all GNU projects switch to new license version. And it was certainly.
Oh and there was plans to release GPLv3 even earlier in 2004 and it's was known that it's will include patents grant. This was obviously absolutely unacceptable for Apple:
(clang and llvm are also open by choice)