My ideas on this would work less well, but still be reasonably effective: simply check that any non-withheld numbers are actually valid! I have seen a lot of (admittedly UK and not US) calls apparently coming from numbers that cannot possibly exist. For example you would see calls where the local part is too short, or simply see invalid area codes. If you know all the valid number formats and area codes for domestic calls, you can drop all calls that do not fit. I'd also suggest wildcard-blocking for end users, too.
Another option would be to have the telcos automatically and freely lookup return routes for each call. If the openly announced number has no reverse route the inbound call should be null-routed. You would then have three cases: valid-but-possibly-forged domestic numbers, withheld numbers and international/not-available.