Actually, I can't remember the last time the 5s lasted me a whole day. It usually dies down around 4pm, if I don't use an external charger.
The problem is, there is only so much optimisation you can do before the laws of physics take over.
A 4.7inch screen, no matter what optimisation iOS8 has, will take up power. Will an 1800mah or 2100mah battery last as long as an Android phone with a comparable screen, having a 3000mah battery? No. It just isn't possible to take away the power draw of the screen in software.
Of course, tasks can be optimised and the CPU can be underclocked so CPU processing tasks take less power.
Try this: Restart your phone, disable Background Refresh and put your iPhone in airplane mode and don't use it for anything and it will last quite a number of days (you don't have actually wait for multiple days, just let sit like for several hours and watch battery percentage drop and extrapolate from there).
The point of this being that the battery is only drained at a significant rate if the phone is performing any actual 'tasks'. I can drain my phone in a few hours with the right task but my normal usage puts the phone at somewhere between 0 and 60% at the end of the day, with me dipping below 5% maybe once per month with 20 to 30% remaining being the most common outcome.
Different people perform different tasks and thus can have wildly different battery life. When people express disbelief at reports by others that their iPhones might easily last a full day, they simply don't appreciate the huge differences in battery consumption of different tasks (where one can differentiate between performing the same task in different network environments).
I very certain that I could make your battery last several more hours by simply cutting out (or modifying) the single task with the highest battery consumption. If you get vastly less battery life than some other people (incl. me for example), you should see this as an opportunity to figure out what is different between you and, eg, me to see if can modify an aspect of your usage to noticeably improve your battery life. Maybe streaming a one-hour podcast uses twice as much power as downloading it first and then listening to it. Maybe there is an app with a lot of background activity that you don't really need to be able to run in the background. Maybe there is an app using a lot of location data that you could shut down.
Optimisation is not just about performing a specific task more efficiently (eg, playing audio), it is also about selecting which tasks to perform and how frequently. The GPS radio is one of the biggest energy consumer and so is the display but also the CPU. The cell and Wifi radios, at least in earlier models, could eat through a lot of battery (we still have the option to switch off 3G or 4G depending on the model). One rogue app using GPS can cut your battery life by a factor of ten, a much larger variation then the difference in battery capacity between 2000 and 3000 MAh.
No matter how large the battery is, there will always be someone for whom it is not large enough. One cannot take one datapoint (in terms of phone usage), ie, you, and base a design decision on that. Of course, you are far from alone, but whether you represent the 50%, 90%, or 95% percentile (in terms of how many iPhone users make it through the day) is difficult to say, though to me it feels as if I here or know of more people that make it through the day than those that don't. Somebody who doesn't make it through a day is always more likely to talk about it, then somebody who does.
But let's say you represent the 80% percentile. You could see this as 20% of users not making it through the day and consider this too high a number for Apple to accept. Or you could see this as an opportunity to find a way of using your device that achieves what 80% of people achieve, making it through a day.