I also checked the code, default values are used also for other fields in
that struct (e.g., default_cpus). If default values are considered fragile,
they must be changed as well in the middle term. However, given a solid
documentation (which is currently missing for these fields) I still think
that default values are acceptable.
Note that there seems also be the possibility to set != NULL default values
in the machine_class_init() function.
I don't mind if the default value is defined at
machine_class_init() or main(). What bothers me is a default
value that depends on vga_interface_available(), because it can
be easily broken by a build config change (as demonstrated by the
bug fixed by this patch).