I found that to be extremely unreliable, I had to reset the Pi a few times before it actually made TFTP requests.
A tiny SDcard with just U-Boot on it, configured to netboot, has been actually reliable.
Unless you are running 3B+ pis, the firmware code for pxe booting has several bugs. Also, Pis have issues with retransmission of DHCP requests on low end network hardware that doesn't set link up fast enough to hear the Pis intial dhcp request. Almost all of these bugs are fixed one way or another at this point though, the github issue tracker for raspberrypi/piserver and friends has lots of info.
Yeah, (a while ago) I also tried just having the firmware update on the SD card, it was a bit more reliable but still far from 100%…
If you are using (two) DHCP servers in "proxy" mode as suggested in the official tutorial, it indeed is extremely unreliable. I think the firmware just does not accept the PXE-containing response if it arrives second or something.
I use one DHCP server, but the TFTP server is on a different machine / IP address