1. For boot (no flicker when the graphic driver takes over);
2. For errors (for instance to display kernel errors) and to stay in graphic mode even when X hangs;
3. It enables to run X as an underprivileged user: So it's cleaner and can add security.
This is probably the relevant commit:
http://cgit.freedesktop.org/~airlied/linux/commit/?id=1f4371...
The issue with a closed graphics driver is that while it generally works now, it may not work in a few years when the manufacturer decides to stop supporting it.
See for example
Five Years Later, Intel Poulsbo Is Still A Linux Mess
Keyword being open.
I suspect most Rpi users just download some IMG-file from the internet, load it up on a SD-card, and run that as is.
Very few will have any involvement with the Rpi hardware at source-code level, or will try to build or tweak their own images.
As far as I understand it, the Raspberry Pi still needs a binary blob due to the way it boots[0]. The blob is actually loaded into the VPU first before the main processor is even running.
> The most important thing you should know is that the RaspberryPi is a strange beast where the ARM CPU is the not main CPU - it's only a co-processor to the VideoCore GPU. When the RaspberryPi starts, a GPU blob is read from the SD card to the L2 cache and executed. This code then brings up all the important peripherals (RAM, clocks etc) and starts the ARM CPU. Then the 2nd stage bootloader or some operating system itself can be run on ARM CPU.
[0] https://raspberrypi.stackexchange.com/questions/7122/level-o...
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux....
[0] http://kernelnewbies.org/Linux_4.4-DriversArch [1] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux....