The only time you might run into difficulty is if you were changing from a single core processor to a multi-core processor.
I don't think this has been the case for quite a few years now, at least in the linux world; used to be the case you'd need a kernel with SMP explicitly enabled, then I think an option was added to automatically detect when it was running on SMP hardware (I think because running an SMP kernel on UP hardware introduced a small but noticeable performance overhead), and then I think pretty much everyone started shipping SMP kernels by default anyway.
Not sure how BSD handles it technically, but I've done mobo swaps with it and not run into any issues.
Linux handles hardware in a fundamentally different way to windows on most distros, detecting it every boot. As such you can generally take a hard drive that used to boot on your Athlon64 and plug it into a present day intel motherboard and have it boot cleanly.
Windows on the other hand reads a lot of its boot info from the system it's booting off, much of which is tied to device IDs which can change at the drop of a hat (and for which there may or may not be generic fallback options). Anyone who switched their SATA ports from IDE to AHCI back in the day can attest to what fun that was, trying to figure out which device IDs in the registry needed changing before the reboot... hardware changes like that don't
require a reinstall to get working, but reinstalling on the new hardware was usually the simpler option for most people. FWIW my windows 7 workstation has gone through four motherboards (and four or five SSDs) since being installed back in 2009