Embedded stuff mostly uses u-boot true. But u-boot itself is actually fine for this type of device. I recently did an evaluation of several system on modules. They all came with their own usually different version of u-boot. For the purspose of the evaluation I ddin't care I just pointed them at my kernel + DT and it booted.
The "decades old" part really depends. At work I've just finished updating our u-boot 2020.10 to 2024.04.
But embedded and PC / Server are fundementally different in terms of use case. On a PC / Server the user expects to install an OS of his choice. Embedded isn't like that, the definition of embedded it pretty much "single use case device" so being able to install a generic Linux distro and run libre office isn't a use case many care about, particularly if it would increase the hardware costs.
Phones are a different case to embedded, here it *would* be useful to install a generic OS (though probably not the same distributions as on PCs). For that a standarised bootloader / OS interface would be useful but it deosn't have to be UEFI / ACPI, u-boot distroboot would be sufficient https://docs.u-boot.org/en/latest/develop/bootstd.html