I think most of this is changing and has changed already (like Patrick said it happened gradually) -- these days most chipset code for both x86 and Arm is in src/soc/vendor/common, and most new mainboards use the variant system. Whenever I see a patch of someone copy&pasting a lot of code I definitely ask them to find a way to factor it out and make it common instead. But if there is still uncertainty about what the general right approach for new code is, I think we should decide (and maybe write it down somewhere) that it should be code reuse and not copy&paste.
I think you hit on the key point here about writing down what you see as a better development model. For mainboard ports, the documentation that exists suggests finding a similar board, creating a new directory, and copying files from it: https://www.coreboot.org/Motherboard_Porting_Guide