You have just identified the biggest problem with classes. As it stands, there is little purpose in their existence, because they too closely resemble their job.

But the solution, which many would argue against me, is not to eliminate them. Classes need to be more diversified to allow for varying play styles. Then, and only then, can jobs fulfill their true purpose, which is to add specialization to the class (that is, to pigeonhole them into a role, so to speak). On top of that, it would also allow one class to have multiple job possibilities.