I think you're misunderstanding the author's intention. He's not trying to describe how the terms are used, he's trying to classify what he sees as more or less distinct disciplines of the field.
He's also not trying to classify types of jobs, but types of people, and how the different types think. I don't know if he's totally right, but it seems like a valuable enough line of inquiry to me, both to better understand who you are and what kind of role is best suited to you, and to understand others in the field and what roles they are best suited to.
But how he assigns the three titles is almost entirely arbitrary. He might as well just call them Type 1, 2, and 3 programmers instead of trying to artificially force distinctions between developer, programmer, and computer scientist.
The problem with that is that linguistic terms are defined over time and can change through how everyone understands and uses them. For example, see the words gay and hacker.
For the category of career types, definitions can only remain constant to an upheld ideal when there's a professional body that enforces what the term means. The professional body may or may not be successful in its efforts. For example, there are a lot of P.Eng folks who dislike it when software guys and network guys call themselves engineers.
He's also not trying to classify types of jobs, but types of people, and how the different types think. I don't know if he's totally right, but it seems like a valuable enough line of inquiry to me, both to better understand who you are and what kind of role is best suited to you, and to understand others in the field and what roles they are best suited to.