To me, one of the key decision factors is the quality of a vendor's documentation. I refuse to use parts from a vendor that has poorly written, confusing, and/or inaccurate data sheets and user's guides even if the part itself is technically excellent. It's just not worth my time to figure out how the part works by what amounts to trial and error.
I use a third-party toolset (Rowley Crossworks), so I'm not tied to any particular vendor's tools. This gives me the freedom to use a Cortex-M part from any vendor, whereas vendor-specific toolsets are often tied to that vendor's parts and won't work with anyone else's parts. I also avoid anything based on Eclipse, primarily because I just don't like it. We use both Keil and IAR at work, and I like both of them, but for my own hobby use at home I just can't justify the high cost of these tools.
With respect to NXP versus ST, I find NXP's documentation better than ST's, and ST's peripherals a little better (and simpler) than NXP's. So for me, it's a toss-up between NXP and ST, and I use both. Right now I'm primarily using ST, however, because NXP doesn't have any Cortex-M7 offerings yet.
I never use vendor-supplied libraries. I prefer to write my own, from scratch. I've found that vendor libraries are often buggy as hell. My code is usually simpler and more robust anyway (primarily due to my thirty years of experience writing embedded code).