Let me try to put it another way: as I envisage the whole process
1.- On startup:
a) Get the startup file from [ .emacs, .emacs.d/init.el, .config/emacs/init.el ] or whatever set of files we decide and load it
b) if custom-file is not nil and wasn't already loaded, load custom-file. If is was already loaded, maybe tell the user (???)
2.- When saving the customisations
if custom-file is not nil, save them there else save them in the startup file whatever it is
AFAIK, the only new thing is to include 1b) in the emacs code, because 1a) and 2) are already in the code (it's how emacs behaves today, right?)
So someone not defining custom-file would not see anything changing (long-standing behaviour respected)
Just my .2 cents, /PA