Make the socket/headers the electrical and PCB item. So electrically that’s what you wire to and position on the board.
Add the IC/pluggable item a BOM-only item, or with a user layer only footprint to position the 3D model.
So DRC/ERC is happy, the BOM is accurate, the 3D models are well associated, and assembly is bit more logical (the socket is populated at soldering time, and the pluggable then can be plugged in at the same time as other post-soldering mechanical things).
PS. I’m less interested in all the designator rules.
Well it’s not the total opposite, the only difference is that you use the socket rather than the IC symbol. The drawback with that is you don’t get to reuse the symbol for the IC that has already been developed and the pin types. Also it doesn’t work with multi unit ICs. But it’s only a matter of which tweaks one is willing to do to make things fit into the KiCad scheme.
One subtlety that might not be apparent: it is the IC symbol. Multi-unit and all. I just change the fields so the ordered item is the socket, and the footprint is the socket.
So in the screenshot, A1 is the standard Arduino symbol, but I fill out the fields so on the BOM you’re ordering the headers. Then I tweak the footprint so it’s just the headers, and move the actual Arduino content to the new H1 symbol.