My solution, above, will work. And, I don't see why it was so easily dismissed when the suggestion is based on the core work-flow of KiCad; and the NEW 3D viewer!
Unless I am missing something, all you have to do is make 2 custom Atomic parts for each optional part; which is not hard to do at all. Edit the one footprint to have NO 3D part association; and done.
A 3D visual/invisible check-box option could be a wishlist item, but I can't see that being very high on the priority list unless another wishlist item could benefit also.
I have 2 parts on a board that are addressable by pins being pulled high/low/middle. I have the need for at least 3 boards with different addresses on the boards.
For my design, the BOM will only be different in quantity. And, in manufacture, will be different in quantity and placement.
I will create 2 Atomic Parts for the resistor I use, and simply alter one of the footprints to NOT have a 3D part association.
Then I will archive the current project under the first part number. Then I will swap the Atomic Parts around in Eeschema, re-run the Netlist, and have a new 3D view in PcbNew. Then re-archive the project with the second revision name.
It certainly seems different then Pads (from what you mentioned), but I don't see how it is any harder; AND, you get a 3D view, not just a 2D view.