Hi Ben,
There are different meanings for 'roam'. Are you just talking about fast-transition roaming?
I'm using 'roam' as any transition between BSSes in the same SSID/Security type. So regular re-association, pre-authenticated association, fast transition.
I would think that the decision to restart DHCP (at least ipv4) should be in user-space. I'm less sure about how IPv6 should deal with this. I have tested roaming using FT and normal-ish wpa_supplicant without doing DHCP, and it works fine. Of course, it also works if you choose to re-do DHCP.
Our thinking on this was to assume that DHCP parameters are still valid after a roam, but re-confirm them just in case. If the confirmation fails, then we can fall back to requesting a new DHCP lease.
Regards, -Denis