I have recently re-read this postion in a published article.
The equivalence falls apart, however, when the software implementation is not totally internal and some company can modify that code. For example, when firmware needs to be copied into the device to make the device function, or included in the system distribution that you install, that is no internal software implementation; rather, it is a piece of installed nonfree software. It is unjust because some manufacturer can change it but you can’t.
From this perspective, the firmware inside a module is acceptable to freedom (unless it is otherwise malicious). However, there is some firmware in Librem 5 which is stored in dedicated “firmware jail” and is loaded from there without processing into a secondary processor either by Das U-Boot (in case of RAM initialization firmware) or by the kernel (in case of the modem and the wireless card). Purism believes that mere passing the firmware from “firmware jail” to a secondary processor makes the device respecting freedom in the above meaning.
This appears to be formally true as long as the firmware is not upgradable. However, because the firmware is passed by the uboot and the kernel, it is upgradable respectively by recompiling U-Boot (in case of RAM initialization firmware) and by installing firmware normally in the filesystem (in case of cards).
The cards are removable, so the firmware required for them may be considered separately. However, I am yet to find one that works without firmware in the filesystem. A few wireless cards which I tried did not work because the wireless card slot expects an SDIO card by design.