You are right about the lots of discrete components, but you are wrong about the battery life. Currently, Librem 5 works for ~10 hours and it has no suspend at all. One could probably expect 24 hours when suspend is fully implemented. More details:
https://source.puri.sm/Librem5/community-wiki/-/wikis/Freque....