I don't know if you're right or wrong, or if there even is such a dichotomy, but I struggle with the same thing with one of our products. It's basically Linux running on an ARM chip, with our stuff on top. We call if "firmware" for what are probably reasons of habit, because all of our other products actually do use what I would call firmware. And when we hire for the team, we specify "embedded programmers". But I dunno, this board (single-core though it might be) would have suited me just fine as a desktop box twenty years ago. It runs a full OS, it runs a web server for the UI, services in the background; it's a reachable server in a teeny-tiny box if you ask me. Writing code for it is much like writing any other Linux app. Is it really "firmware"? Do we really need "embedded programmers"?
I would argue "no" on both points.