I was surprised to discover that the asterisk based Epygi commercial IPBX (was able to mimic a traditionnal PBX regarding call transfer and call pickup.
With Epygi, when picking up a call, the caller id is delivered on the phone, so you can choose to reject the call.
It seems to me an important function.
Actually with FreePBX 2.3.1, when picking up a call (directed or not) and when transfering a call (blind or not), the caller ID is not delivered.
I don't know what other manufacturers do support on their phone, but i know that Aastra 5xi serie do support realtime caller id delivery.
On those phones it is even possible to change the caller ID during a call. (This feature need to be activated from .cfg config files).
I think that this is working with a simple SIP message, and should not cause problems to other phones if this function is activated by default inside the FreePBX dialplan.