It's definitely not an option to always build choices in at compile time
for each board, as there could be thousands or even millions of instances
of a particular target board in the IoT space. Being able to parametrize a
single build image into 1:N behaviour at runtime is essential.
Since the compile-time solution would make development and production
untenable, the manufacturer would be faced with two choices: either use a
standard API that can parametrize fixed firmware at runtime, or in the
absence of such an API then use some bespoke parametrization technique
which reduces portability. To have a standard agreed mechanism for this is
clearly better for everyone.
Like Nashif, I too am surprised that this has become a long discussion,
since the need is clear and it hasn't been contested by anyone.