Works for me.
As chscag said, might be on carrier end. For example, I believe Verizon is supposed to be able to take *67 numbers, but also has it as a setting under one's account settings on their website.
Also, government agencies, 800 numbers, business numbers(?) are getting the "real" caller id information not what we consider caller id. And believe there are services that will route a call through said service to provide receiver with the "real" caller id.
The caller id switch is for native app only, so things like the Google Voice app will not use the iOS option.