Exactly. You can't have it both ways. If you want a good camera, then you're firmly in smartphone territory, and recent phones too. Even my 4-year-old smartphone's camera sucks.
What we need to be doing is figuring out how to make our own smartphones that actually work well. The key to this (since we can't build them ourselves obviously) is to back some of the open-source community projects like CyanogenMod (or any better ones, I'm open to suggestions) and get those working well, just like OpenWrt works well for a lot of routers. If you want a good router that doesn't have any spyware or other BS from the manufacturer, you don't *need* to build your own router from the ground up, you just need to find a cheap consumer router that's supported by OpenWrt and install that, and then you're set. We need to do the same for phones.
There's always going to be limitations, however. Phones only come with batteries that are so large, but by customizing the software some of that can be mitigated, by removing all the bloatware and making very stripped-down builds which don't have much running in the background. Obviously, the phone makers and carriers are not going to provide what we want for us, at any price, so if we want this stuff we have to do it ourselves. And, there's already projects in existence with goals much like this, so it shouldn't be that hard to piggyback onto one of them.