Say I have designed a system that's running Linux on a main processor and some assembler that I've written on a microcontroller, and I keep the source to the microcontroller's code secret. I believe that I could get FSF approval for that, as long as I designate the microcontroller as "not meant to be changed by the user"; it would then not count as "product software" as they define it. Whether or not a method for replacing that code exists isn't mentioned as a factor in their rules. What they do say is that if free software for the microcontroller "becomes available" (presumably from a 3rd party, who has reverse-engineered my code), then I have to "adopt" it in the next version of the product. (I think "adopt" means "use", but I'm not sure.)
It definitely looks to me as if they're applying different standards to different kinds of software, without good reason.