These days, wireless cards and pretty much everything else have simple bootloaders in them, and the driver loads their SRAM with the actual real firmware.
And the actual real firmware contains all sorts of third party code like RTOSes, air interface code, etc... which could come from a dozen different vendors that are all happy selling their proprietary, patent-encumbered code for $$$ and don't want to see it open sourced. And they have the right to be that way.
Open sourcing all the bits to make the binary blob that gets loaded into the module is damn near impossible at this point... it's just easier to give the open source folks a blob and say "load this"