The Problem is more about the updateability. If you have microcode in a rom thats not updateable it is more or less the same as hardware. If its updateable, and u dont have the source of that microcode, it can have regressions, or just it can change. so developing a driver to a blackbox aka reverseengineering is hard enough, but reverseengineer to a moving blackbox target is a problem.
Even if Kernel-devs or distributiors try to only update the blob if no regression is there u could maybe not see the regressions because of stuff users only rarely see.
But its a very small case u can argue both ways. For me thats good enough too.
But the picture not randomly says (dont buy from ati) and not (from amd) because ati really sucked with their linux support and amd more or less fixed it. At least 99% of the problem and the clear bad boy is nvidia at the moment.
there are some problems, distros have to make their hands dirty and burn non-free software on their cds or in their downloads, with roms they dont. so they distribute non-free-software. with roms they dont. Then another problem lets say one distro ships the firmware version x and the other version x+1. Now suddenly u have bugs because of that in one distro. Now the users say ohh this linux devs cant write good drivers even its amds fault.