2) Intellectual "Property" issues
Hardware vendors don't want other hardware vendors to know how they run
their hardware so that their design can't be copied or stolen.
Sounds like Microsoft about operating systems - not a good free software
reason at all.
3) Inability to build
Firmware is usually code for some PLD or ASIC, which needs specialized
(and EXPENSIVE) compilers to build. Most people are unlikely to be able
to turn the source into the firmware.
So.. most people can't work a compiler but they can still benefit from the
fact there are people who can and do have the tools and use them.
A lot of fancier embedded device firmware is ARM, MIPS or some microcontroller
if you stuff it through a few disassemblers. Most CD/DVD firmware for example
is ARM.
Alan