For other packages I agree. Kernel-modules should be a exception IMHO.
I worry that having them as the exception means we have to do the code anyway which makes it a slippery-damn-slope to all packages using arbitrary defines.
It builds for the normal user without arbitrary defines. And even better: It automatically builds what you probably want, because with the above it builds the kernel-module for the currently running kernel. If you get a random kernel-module.src.rpm where kver ist hardcoded you have to edit it each time to get compile against a new kernel.
why doesn't it automatically build for whatever the highest installed kernel-devel or highest installed kernel package is?
-sv