Actually all the Zynq examples I have found use u-boot to load the PL bitstream before starting the linux kernel. But the Zynq beauty is precisely to allow to boot Linux without programming the PL.
* Linux has kernel modules to dynamically change drivers.
* Linux has device tree overlay to dynamically change hardware description.
So way not having a PL bitstream loader into Linux to allow to dynamically change the hardware ?
This would allow to boot a lot of designs from a standard and well tested image and let managing the PL hardware from a comfortable user space console. The procedure on how to build a new PL hardware, his associated device tree file and kernel module driver will certainly be simpler to understand and to experiment. Eventually this would open the possibility to assemble the PL bitstream file, device tree file and kernel module file into a package exactly like any others Linux distribution packages and thus allow to distribute upgrade using the standard package management of the distribution.