After much wiresharking identified the issue... and it was the Netgear switch connected to the Edgerouter.. or more specifically the Polycom phones interpretation of the LLDP standard that was the issue.
Connected an Aastra phone to the same setup, and it worked fine. So.. The switch in question is a Netgear GS110TP, handy little switch, supports LLDP and setting voice vlan. I had configured it up to put phones on vlan2. All seemed to work, DHCP packets seemed ok. looked like it should work, I assumed it was because the DHCP was not broadcast, but as others noted this is not neeccary.
Problem discovered after wiresharking the LLDP and checking the Polycom specs is that I had not set the hostname in the Netgear switch. This caused it to send a null string '' to the phone in the LLDP packet.. which the Polycom then ignored the whole LLDP transaction. The switch put the phone on the right vlan as I had set it to recognize the OID of the phones, so packets were in the right vlan, but the phone would not recognize the tagged traffic. So the polycom was refusing to be on Vlan 2 becuase the hostname was not set in the switch.. Set the hostname.. and poof it worked.
sigh...
/rh