I tested DHCP services on pihole, and they work, but the php/web interface does not support the full gamut of dnsmasq specification capabilities. I will tell you right out, that I have zero php experience, and I tried to modify the php to do what I wanted to add, and I'll I did was break the web interface.
When I hand edit the dnsmasq config, it would do what I wanted, but that broke the web interface as far as formatting and information display.
I am running pihole installed on RaspberryPi OS on 3B+ plus unbound for recursive DNS
It is a fully stock install, maintained via 'pihole -up'
I have reverted my php changes.
One of the things I do now is run a separate dnsmasq on a separate 3B+.
On that install, I use dnsmasq options such as multiple MAC addresses on a single line mapped to a single IP address. I do this for multiple Eth hosts where only one will be plugged in looking for an address.
I know that is a corner case, but it works under dnsmasq (raw on the 3B+) and it also works under the dnsmasq running on pihole. It is just that it breaks the pihole web interface.
Also, the web interface doesn't currently support specifying the lease time, but dnsmasq under pihole supports it.
I am considering just removing the web interface from pihole, other than then DHCP "Enable" checkbox, for my local install.
Thanks for supporting such an awesome project, this is a really piddling issue, I wouldn't even call it a complaint.
[Edit] I might be complaining if I wasn't so comfortable with raw dnsmasq config. I was happy that pihole allowed my custom settings, I was more concerned with the web interface messing with my custom settings, or borking normal pihole operation when it encountered my custom configuration. That is why I reverted back to my existing dnsmasq server.