It's not that easy. You can get a call from X with a prefix from B and it's just how routing sometimes works. In the same way an internet connection from Germany to the UK may actually arrive from an interconnect in Amsterdam. But it doesn't matter. What matters is the responsibility of each party to point out who sent the call to them.
(And that's not even mentioning the issue of how you'd map providers to prefixes. It's somewhere between non-trivial and impossible in practice.)