It is checked in vm_map_insert() and vm_map_protect() that PROT_WRITE | PROT_EXEC are never specified together, if vm_map has MAP_WX flag set. FreeBSD control flag allows specific binary to request WX exempt, and there are per ABI boolean sysctls kern.elf{32,64}.allow_wx to enable/disable globally.
For vm_map_protect(), only max_prot is checked against policy. It is harmless and actually might be useful to not punish apps that apply disallowed permissions on holes and guards.
This is basically a rewrite of D24933 in the way I think it should be done.