Why can't the bootloader save and log messages for us to view later
Or am I missing something that makes this procedure very difficult?


Yes. The bootloader is what loads your operating system.

There's no drivers but the minimal bit you need to load the operating system. 

Uboot indeed is pretty mighty – it can even come (if you compile it with such) with the appropriate flash memory driver (at least read-only, but that's a start for your own patches, right?), and some file system drivers.

The ability to write logs to storage is still a lot of things to implement, which you'd usually leave up to the actual OS. In fact, during the time when the first things the bootloader does are executed and potentially logged to the serial console, your board might not even have working RAM yet, but might be exclusively working from caches or even just the register bank.

So, yeah, you ignore the fact that "writing something to storage" becomes easy once you're a program running under an OS. It's hard when there's no OS, thus no hardware support.