Medical offices hide their numbers for very good reasons: if you've got an abusive spouse, you often don't want the medical office in your call history. Which results in a lot of very important calls being ignored.
Unless I'm missing something, this doesn't seem hard to fix: just let users decide whether hidden numbers should be ignored or received.
Stopping caller ID spoofing doesn't have to mean caller ID is always enabled. You should be able to make a call with NO caller id, but not a call with somebody else's caller id.