Thanks very much! In the interest of making sure I am solving this in the best way, and the way you intended, I want to clarify how I have taken your suggestion:
Device enumeration, in this case, is done whilst parsing the device tree binary (registration is not from a board.c file)
Therefore, I must reorder the declaration of sdhc4 in the device tree to be the first sdhc device probed; we know that sdhc4 will always be found, after all, on the iMX6qSabreSD board.
To do this I have patched the file imx6qdl.dtsi putting "usdhc4: usdhc@0219c000 {...}" before "usdhc1: usdhc@02190000 {...}"
I confirmed the ordering in the dtb by decompiling back into a flat dts and looking for "0219c000" which is now the first usdhc device.
This has worked, I can boot the board now from eMMC with or without an SD Card in either slot.
This was done modifying the device tree by applying a patch locally at build time, there is no Kernel code change.
Was this your intended interpretation?