Yes, mostly. You get some challenges with booting, however. Some machines allow you to interrupt boot up and select an alternative boot drive, while others (particularly Windows-based) want to own the machine and make it more difficult to do so. I don't have a great deal of experience with Windows and it might have gotten easier in more recent versions to do this.
Regarding portability, Linux distributions handle changing the hardware out from underneath them pretty well, but things like hardware device names etc. changing might disrupt some configurations.
Absent more complex solutions like virtualization, dual-booting is typically the easiest and best option. Then one day you stop booting into Windows are are free 😏