I can give you a good example of why you might want to use the SPI flash. You can get the FPGA up and running in milliseconds. We were running a Microblaze with a Linux kernel and the FPGA could perform its functions autonomously once Linux booted. If you program from the Pi or BB, you have to wait for the Arm Linux to boot before your FPGA can begin loading. It really just depends on what your design goals are.