Definitions of words do not necessarily hold the full social context of that word.
"Sex worker" is better than "prostitute" is better than "whore" in US English at least, and for the most part. When someone wants to talk without prejudice, one might use "sex worker" instead of prostitute, although "prostitute" is also, obviously, quite apt and not terribly prejudicial. When a woman is talking about a woman with whom her husband might be cheating, she refers to that woman (among other things), usually, as a "whore" even though in a vulgar meaning the word "whore" is also correct. It just comes across quite prejudicial.
To ignore the social meanings behind a pure definition is to be somewhat disingenuous, I believe. If you were going to compare prostitutes to lawyers in a vulgar sense (kind of like keeping verb tenses the same in a single sentence, for example), I believe one would have to use the terms "shyster" and "whore" together to avoid putting undue prejudice on one side and not the other