That may be the fault of the UEFI implementation. Many are terrible - especially from the big OEMs. I keep rEFInd as my boot manager and let it deal with the rest. I also find a way to recover rEFInd if an OS sets its own bootloader as default. It may take trial of up to 5 different methods to find one that actually works.