It varies from device to device but you might be surprised to know that many of the features you've listed often do not require a binary driver or loadable firmware. They are often supported by the kernel which is of course open source. When I run Debian or Devuan on my N900, the only binary blob I need to use is the loadable firmware for wireless network connectivity. WiFi is a frequently problem on many devices but Replicant offers connectivity via an external Wi-Fi dongle as an alternative to binary blobs for certain devices. This could probably be done on the N900 too once USB host mode has been mainlined.