I wanted to be careful because shaders don't really just shade anymore and I was pretty sure if I limited to just graphics cards, there will be someone that pops up that says the first shaders were actually blah blah blah.
Basically, I knew I was going to be slightly wrong about something somewhere.
I think you're right, actually. There are occasions where you use a feature that's ostensibly supported, but it needs to be emulated by the driver in software (I think geometry shaders might have been this way on some OS/hardware combination). This is where some of OpenGL's reputation for fast/slow paths comes from.
I mean, effectively anything you can do with a GPU shader, can be done by the CPU, so it seemed reasonable to me that you could make something functionally equivalent for the CPU and call it a shader.
It started feeling like the difference between "programming language" and "scripting language" in my head.
Basically, I knew I was going to be slightly wrong about something somewhere.