Sure, it's just a simple matter of programming to re-architect the signalling system that's driven the phone companies since the mid-80s. Unfortunately, number spoofing has been an important feature for legitimate businesses - it lets them do things like always give you the number of their main office as caller-id, even if the person is calling from a remote office, or let you give the direct number of the caller, even if the call is getting routed through the company's main office PBX VOIP gateway. It also provides the ability to do a lot more complicated things. And (this mattered more back then than now) it let them run phone switches on processors that were made in the 1960s and 1970s, and with mainframes that might have 10 MIPS of CPU power (compared with the wimpy 1 MIPS VAX I was using in 1980.) My wristwatch probably has less RAM than that, but probably a much faster CPU, and my wimpy Android phone has about as much RAM as my VAX had disk.
And yes, within the next decade we may well have re-architected the world's phone systems away from the designs we used back then (and much of the implementation has changed radically already), but interface standards stick around a lot longer than implementations, and are a lot harder to get rid of.