Not necessarily. Ignoring cellphones and talking about CLID with name on landlines, there’s a common misconception about how it works.
The number gets transmitted to your local switch (CO) by the sending switch. It could be spoofed: that was a deliberate feature put in so PBXs could show the main number instead of whatever random line the outgoing call happened to use. Clearly there was no thought then about security/spoofing.
When it gets to the local CO, if CLID with name is enabled, it does a “database dip”: it looks up the number in whatever database(s) it has access to. These can be out of date, which is why some real calls show the wrong name.
Or the lookup can fail for various reasons, which is why you then see just the city, state, or country: because the switch says, “Well, that didn’t work, but I know 212 is Manhattan, so let’s show NEW YORK”. For an 800# that has no lookup data, it (or at least my provider) replaces UNKNOWN with 800 SERVICE. Sometimes that all fails and you see UNKNOWN. Since the priority is call delivery, CLID name lookup failing is not seen as significant.
But I think I have received legitimate calls showing an 800# and the real name. If so, that’s just that end spoofing the number, and their main 800# having an entry in the database.