Some investigating later, I've concluded that the following patch gets NFS4 referals working again.
//Anton
--- support/export/cache.c.orig 2024-10-02 20:44:46.774673108 +0200 +++ support/export/cache.c 2024-10-02 20:44:51.966724736 +0200 @@ -34,9 +34,9 @@ #include "pseudoflavors.h" #include "xcommon.h" -#ifdef HAVE_JUNCTION_SUPPORT +//#ifdef HAVE_JUNCTION_SUPPORT #include "fsloc.h" -#endif +//#endif #ifdef USE_BLKID #include "blkid/blkid.h" @@ -908,7 +908,7 @@ xlog(D_CALL, "nfsd_fh: found %p path %s", found, found ? found->e_path : NULL); } -#ifdef HAVE_JUNCTION_SUPPORT +//#ifdef HAVE_JUNCTION_SUPPORT static void write_fsloc(char **bp, int *blen, struct exportent *ep) { struct servers *servers; @@ -975,9 +975,9 @@ qword_addint(&bp, &blen, exp->e_anongid); qword_addint(&bp, &blen, exp->e_fsid); -#ifdef HAVE_JUNCTION_SUPPORT +//#ifdef HAVE_JUNCTION_SUPPORT write_fsloc(&bp, &blen, exp); -#endif +//#endif write_secinfo(&bp, &blen, exp, flag_mask); if (exp->e_uuid == NULL || different_fs) { char u[16];