Binary blobs running on your CPU under your OS is a completely different issue than binary blobs of firmware. If you have to provide the firmware blob to the device, it's most likely only because it was cheaper to not include any flash memory on it that could store it.
Also, they can be very different in their nature. Firmwares can contains fairly complex operating systems that run on some microcontroller inside your hard drive, they can be hand-crafted for particular piece of hardware (so there's no source code) or they may only consist of some data structures needed to properly initialize the registers or other stuff like that.
> they can be hand-crafted for particular piece of hardware (so there's no source code)
The property of being handcrafted for a particular piece of hardware does not imply that there is no source code.
"Blobs are vendor-compiled binary drivers without any source code."
http://www.openbsd.org/lyrics.html#39