Just to add a little to what bluewhite4 says. I have seen Google add the name info on some Android devices, but that's taken from their database, not sent from the telco.
Interesting...I've always been an iPhone user, so didn't know Android would do this.Thanks for sharing!
Android in general doesn't do this as pure AOSP, there are some Dialer applications (and some that are bundled by various OEMs) and many custom ROMs that can do outbound and inbound lookups, some to Google, WhitePages, OpenCNAM, and other services. It is more common than you think, say you call 222-1111 for pizza, the dialer application can do a reverse lookup as the call is setup and it will say "Calling Pizza Hut North" or something like that, same with inbound calls, it sees 701-221-9601 come in as the Caller ID so it checks your Contacts and finds no match, then it does a lookup to whatever database its set to and comes back and says "Gamestop Kirkwood Mall" as the caller ID name even though it isn't in my contacts. The name isn't coming from the PBX or carrier, it is being looked up by the handset itself. Although some Android devices do not support this, so they will just say UNKNOWN or the number only.
One more reason (of hundreds I guess) I prefer Android over iPhone... But I digress, this isn't about that.
Outbound CID is generally sent to Landlines (analog, PRI, etc) or SIP, not cell phones. In most cases it is supplied by the carrier, there also some gotchas... for example if the main number is 651-444-5555 and tell telco the outbound CID is "Company XYZ", you have to SEND that CID out the PRI for it to work, if you send a DID of 651-445-1101 it doesn't match the telco's records so it only shows UNKNOWN or something similar even on devices that support CID Name. In my experience, most US carriers will not accept you sending a Outbound CID name over PRI and you must refer to the carrier, but often SIP carriers do allow this.