I don't think this problem is unique to Nvidia stuff.
We have ports, which are always built for the lowest common denominator in a release. That means right now, since 15.0 is not yet EoL, all ports are built against 15.0, even ports that are kmods (like nvidia).
Then we have "ports-kmods", which are built for everything supported so we have kmods for 15.0 and 15.1
Build environments:
ports and ports-kmod are separate, distinct, maybe even have different git repos and commit stuff. Given that, you can/will wind up with different versions between ports and ports-kmod, as shown in post #12.
T-Aoki points out in post #13 there are build issues for nvidia in the ports-kmod repo which is why you see different versions in ports and ports-kmod
That is the root cause of why if you are running on 15.1, you need to build nvidia stuff locally from a ports tree.
I don't think it's that hard to understand, the problem has always existed for third party kmods. The ports-kmod repo helps, but if it doesn't build, we get confusion.
If the commands used to check "is there a newer version" added version/ABI awareness, we may have less confusion. Or maybe more. I don't know.
But sometimes the answer is "don't follow latest, follow quarterly and don't blindly pkg upgrade"