I just experienced this behavior myself (upgrading 8.2-RELEASE with GENERIC), and "that's the way it is" seems like the wrong answer to me, for a couple reasons.
1. It seems to contradict what the FreeBSD Handbook says. From
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/updating-upgrading-freebsdupdate.html: ". . . freebsd-update will always update the
/usr/src/sys/conf/newvers.sh file. The current patch level (as indicated by the -p number reported by uname -r) is obtained from this file."
My
/usr/src/sys/conf/newvers.sh has indeed been updated, but
uname -r doesn't show the
-p1. Where is it actually getting its information?
2. That's just plain unhelpful. We run a decent number of FreeBSD machines, and one of the things managing them entails is monitoring them, for, among other things, being patched and up-to-date.
portaudit will take care of this for ports, but of course we want to keep the base system and kernel up to date as well. We have a script to check the FreeBSD version against the latest updates (which is already a pretty non-straightforward process), and it uses
uname. It seems that the two options here would be to either re-compile the kernel (which would, it sounds like, fix
uname, but otherwise be a dramatic waste of time) or change the script to parse
/usr/src/sys/conf/newvers.sh instead of using
uname (which isn't a huge deal, but again, why must this be this complicated?).
Am I missing something, or being unreasonable? I'd appreciate any insight.