There should be a way to achieve what you want to do. The following is mostly from memory since I want to answer this quickly and then go home for the weekend.
First, see this new document: Installing VMware ESXi 6.0 Using PXE
I think mboot (which is "bootx64.efi" in the PXE case) should actually be looking for boot.cfg relative to where it was loaded from. So if the DHCP server tells the client that the filename to load is foo/bar/mboot64.efi, then I am pretty sure mboot will look for boot.cfg first in foo/bar/boot.cfg. If it's not found there, mboot will try /boot.cfg. It may make a difference whether the filename given out by the DHCP server starts with "/". If you have access to the logs from your TFTP server, watch to see what filenames mboot tries to access after being loaded.
Additionally, mboot does take a -c command line option saying where the boot.cfg file is. However, if you have your DHCP server telling the client that mboot is the filename to load, there is no way to pass a command line option to mboot. You could try using iPXE as the first file to load, then have iPXE chain into mboot. However, I (somewhat vaguely) remember there was an issue with the way iPXE passes options and you may find that the mboot from current ESXi releases can't recognize them.
The boot.cfg files we ship on our installer CD's annoyingly give all the filenames as absolute pathnames, but you can edit the file to change that. There is syntax to set up a common path prefix, but you also have to delete all the leading "/" characters from the filenames to make it work.
https://www.vmware.com/resources/techresources/10508 gives examples.