Our product is versatile, in that we can modify certain blocks so that we can control our customers devices. On our end, this means depopulating circuits that are not needed to save cost, or modifying others to set proper voltages, etc.
I guess it depends just how expensive these parts are, but you need to consider the cost of having (and stocking!) a whole collection of short run products to sell to customers vs the simplicity of just having 1 (or a few) variants that you need to manage, and that you can buy and therefore stock in higher quantity.
Also, you talk about manufacturing cost savings, yet every single PCB you assemble with unpopulated areas is bigger and more complex than it needs to be... that costs money too.
and really, seriously.. I think this whole thing your'e going through is a management and marketing department problem - someone needs to stop being weak and indecisive, step up and put on their big person pants and make a decision about what options they are going to offer to customers...
How many variations are we really talking here? with 6 optional subcircuits you could have 64 build variants of your board, but in the real world, are you REALLY going to have that many variants you market and sell?? how will customers even work that out when looking at the options on your website? they'll spend hours going round in circles with 64 tabs open.. First, confused as hell, then disappointed in themselves, then angry at you, and then they will just go to a competitor who offers them 3 options to choose from, where one of those basically matches what they wanted.
In general, Im looking to mitigate risk in our BOM generation, so was hoping the variants option in Altium could help. As of now, I am doing everything manually. Its not a lot of work, but requires carefully screening every schematic to ensure everything is set properly. Are you aware of a better way of doing something like this in Altium outside of the variant manager?
if you really want to do this (and I don't know your situation, but for most situations I can imagine, you really don't want to do it)
you COULD assign part number ranges to the part numbers in different subsystems in the design..
ie, say you have a flux capacitor driver subcircuit that you don't always want to assemble, then you number all the designators for its parts R1xx, c1xx, U1xx, etc..
And when want to remove the flux capacitor driver from an assembly, you remove all R1xx C1xx, U1xx, etc part numbers... (or better just the U1xx, J1xx, etc, and leave the cheap parts on no matter what because they cost fractions of a cent and all you can do by removing them from some variants is shoot yourself in the foot, also it leaves the door open for reworking SKUs to other SKUs if you ever need to..)
Anyway - then you can automate the scan for issues in your BOMs if you write a simple c or python program to do so...
Though the whole point of the build variants feature, is even if you really had to have a completely stupid number of build variants, you would grit your teeth and set that whole mess of assemblies up once, and from then on, when you make changes to the design in future, you make sure any new parts are assigned/unassigned to each of the necessary build variants as you go - then you just hit the generate BOM button in your outjob for the specific things you want, and the right things pop out! And you know it's right because you have a proper maintainable structured design that you can rely on.