Proxydhcp works like this (it is currently mostly implemented with the TinyPXE Server BINL option, as spot by Sebus) :
It sits on a subnet and sniff out PXE-based DHCPDISCOVER traffic (port 67 and/or 4011), and broadcasts back, alongside the corresponding DHCPOFFERs (from other server(s)).
The biggest difference being that ProxyDHCP sends null IP addresses (it focuses on extra information such as boot filename, etc).
The client with then send DHCPREQUEST to both the dhcp server (port 67) and to the proxydhcp (port 4011).
Both server will respond with a DHCPACK : the dhcp server with ip details and the proxydhcp with extra details like the boot file name.
In your case Sebus, I am not sure the TinyPXE Servr binl/proxydhcp did the trick actually.
I believe TinyPXE Server simply "won the race" this time.
But you are on the right track indeed : once I have completely the last bits of the proxydhcp it will work exactly like you mentionned.
With one exception : you should then read dhcpd4011:DHCP_xxx sent ... xxx being either an ACK or OFFER.
Basically, when you are set as proxydhcp, you dont want to send anything from port 67.
Today my socket on port 4011 will only answer to RIS/WDS requests.