MKguy, I belive you are right. I have seen this problem multiple times. I think that the way ESXi is implmenting what it calls CDP is different than the way a Cisco switch implements it. It is pulling information from packets somehow, but not the same way that a Cisco switch does. I don't think ESXi is reliable as a source of all information that could be derived from CDP advertisements. There definitely needs to be a fuller explanation from VMware on this.
As far as broadcast packets, CDP as a protocol is not supposed to have to rely on broadcast packets. It is supposed to be able to get its information from CDP advertisements, which are in Cisco's customized format. ESXi is either getting its information without reading the CDP advertisement packet, or it is getting incomplete information from the CDP advertisement. Or perhaps since CDP advertisements only come at certain intervals such as 60 seconds, it isn't retaining the information long enough to give you accurate output.