Q. Is there any reason why someone called “Cohen” is in fact a Levite, and someone called “Levy” is a Kohen?
A. Jewish surnames are fascinating. Some indicate place of origin, e.g. Slonim (Poland), Moskowitz (Russia), Berlin (Germany), or Brodie (Rumania). In England I had a congregant called London, whose ancestors may have migrated to London from eastern Europe and then went back home.
Some names are occupational, such as Schneider (tailor), Stoller (carpenter), Kremer (shopkeeper), or Lehrer (teacher), or the more obvious surnames such as Schochet, Dayan, Chazan, Shamash, Rabbinowitz, etc.
Some are patronymics, such as Abramson, Isaacson, Jacobson, Aronson, and Yankelewitz. In some cases, the adoption of a name in the Austro-Hungarian empire depended on the whim of government officials (and whether one could afford a bribe); hence there were nice names such as Gold and Silver, and unpleasant names such as Spielvogel (playbird, gambler), Dreyer (swindler), Ganz (goose), and Bock (big ox).
Some names indicate status, especially Cohen and Levi and their variants. Acrostic names of Kohanim include Katz (= Kohen Tzedek, righteous priest), Cashdan (= Kahanei Sh’luchei D’rachamana Ninhu, “priests are representatives of the Almighty”: Yoma 19a), and Azoulai (= Ishah Zonah Vachalulah Lo Yikachu, “They shall not marry a harlot or a woman profaned”: Lev. 21:7).
Kaplan or its variants also usually denotes a Kohen, but the reason is uncertain, since in some European languages the name indicates a church dignitary! It may be that when a Kohen told the Austro-Hungarian officials who he was, they equated Kohen with Kaplan.
But not every Cohen is a Kohen. When a non-Kohanic Jew came to an English-speaking country, and neither he nor the officials could spell his Polish name, the officials may have thought that every Jew is called Cohen and thus a new confusing surname entered the family. A similar process may have gained people the name Levy.