Politics bear a part of the blame for some of GCC's more questionable architectural decisions. They intentionally made the architecture hard to write plugins for.
But using bits and pieces of your compiler is exactly what you'd want to be doing when you want to have good editor integration: eg syntax highlighting _should_ actually use the compiler instead of duplicating logic. Especially with a language that's Turing complete to even parse like C++; the logic just to figure out whether something is a type to be coloured eg blue or a variable name to be coloured eg green.
(See http://blog.reverberate.org/2013/08/parsing-c-is-literally-u...)