env import is how arch used to do uboot, and its still used on some architectures such as nsa325.
I think I prefer boot.src, even though it has to be compiled every time, you can do commands far more easily with a script. With environment variables, you can still do I think everything, but it becomes with iterative variables that call each other. Thats far more confusing.
E.g. on my nsa325 look at how I had to modify the device tree:
$this->bbcode_second_pass_code('', 'loadfdt=echo loading ${fdtdir}/${fdtfile} ...; load ${devtype} ${bootpart} ${fdtaddr} ${fdtdir}/${fdtfile}; fdt addr ${fdtaddr}; fdt set /mbus@f1000000/nand@12f chip-delay <45>')
So first you have to discover that the boot command runs loadfdt at some stage, and then need to modify that variable, to do what you want. That to me is less clear that the boot.src script ...