When you install a new kernel, it installs its own modules directory, yes. That is the intended behavior.
The reason the RPM only puts an nvidia.o module in one place is that that is the only kernel version that that nvidia.o kernel module file will EVER work with. When you change kernels, you MUST recompile the NVIDIA_kernel package.
If you plan on updating your kernel often, then instead of going from source RPMs, it may be better to install from tarballs. They work the same (for the most part), but the tarballs will just overwrite other versions instead of requiring that other versions be removed first (in other words, when you rebuild the NVIDIA_kernel, you'll have to remove the version you have installed before you can install the new one -- which means you need to uninstall NVIDIA_GLX as well, and reinstall it after you're done, which is kind of a pain when you can just overwrite files...).