The fundamental difference is that it doesn't *ask* the user for any of these pieces of software. The moment it does is the moment it induces the user to give up their freedom.
When the kernel doesn't say give me this piece of non-Free Software, but rather just works with whatever is on the system it's running, there isn't any problem.
We're not fighting against users' ability to run the non-Free firmware. Even if we wanted to do that, it would be pointless: users can always install the software provided directly by the unethical supplier.
What we're fighting against is precisely the inducement to error: presenting the non-Free Software, or recommending its use, as if it was a solution to a problem, rather than a social problem in itself. Sometimes worse: presenting the non-Free Software as if it was Free Software.
If a user has already opted for hardware that requires non-Free Software, there's very little social harm in letting the user make use of it, as long as the user doesn't happily recommend it to others. But the user will do just that if not made aware that there is a problem in there, and then more victims will be made.
I really don't understand why clever, savvy people accept to be used by hardware suppliers, without realizing they're being induced to betray their goals of a Free (or Open Source, as is sometimes the case) system to take part in a popularity contest that serves hardware vendors that stand against these goals. Hardware vendors that managed to twist the picture so as to enlist the help of those who allegedly stand for freedom or openness, and so that users blame these developers, rather than the hardware vendors, when the developers decide to stand for users' freedoms.
That's what I consider massively inconsistent and impractical. But then, as Simon also says, the best enemy of freedom is a happy slave.