I'm not as concerned about vendor lock-in with tool chains as I used to be.
Portability between manufacturers is a laudable goal, of course, but the very nature of embedded development is it's hardware-centric. There's a lot of my code which, though written in a language that should compile for any target, nevertheless contains such a high percentage of device driver code that porting it to a different manufacturer's MCU would be very hard work.
In short, I'm simply not going to do it without a really compelling reason, and even if there were, swapping to a different compiler and IDE would be the least of my problems.
It's a shame there's no suite of manufacturer-independent drivers available. A set of functions to do generic things like read from an ADC, or make a timer interrupt go off after X amount of time, or write a sequence of bytes via SPI, would be great. To actually be useful, though, it would need to be well abstracted from the underlying hardware, and of course, no manufacturer is likely to put in the effort.