I think we're saying the same thing.
We already have a mechanism for avoiding things at build time - specifically
config-devices.mak. We don't have a nice UI for it, but it's there.
At worst your distro specific patch is a 1-line change to default-
configs/i386-softmmu.mak.
I have no objection to moving hpet.c into Makefile.objs, conditional on
CONFIG_HPET (like e.g. CONFIG_SERIAL/serial.o). However a necessary
prerequisite is that you fix the device model and machine initialisation so
that it's possible to omit hpet.o without rebuilding anything else.