The ports' Makefiles relate to what is in /usr/ports/Mk. All of these contain conditionals that change compilation, prerequisites and whatever dependent on which OS version is used. Obviousely these conditionals have undefined behaviour when the OS version is no longer supported.If actually there are no obsoleted-version-specific fixes exists and you are building ports locally, all you need for ports should be reverting the Mk/bsd.ports.mk part of commit to sunset the version. An example here.
Now you say, a server operator who does not want to upgrade every six months, could instead just hack around and patch and redesign these makefiles so that they continue to work. Is this madness or what?
From my experience it is already enough work to fix these makefiles when they happen to be buggy. But not even knowing whether the compilation fails because something is buggy or because it is incompatible with the obsoleted release, that is certainly not practicable in any professional environment.
So what do You really want?
As I said before, operators are forced to upgrade every time whether they want that or not.