Of course it's the software, and more precisely, it's the update procedure. For me the proof is in a recent post by someone who reinstalled his phone as new, adding apps (and accounts?) one by one.
The update procedure is clearly complex, given the time it takes, and I'm not particularly surprised that even Apple cannot foresee all possible things that could go wrong. Despite their tight control, there is sufficient leeway for all kinds of interactions between apps and (their) settings that can cause some form of instability which translates more or less directly in increased battery usage because it affects the intricate power economy algorithms that are normally at play.
iOS 6.1.3 doesn't seem to offer me anything of interest over 6.1.2 (and it would prevent me from jailbreaking, which I'm still considering). If it weren't for that, I'd have followed a labourious, "manual" update procedure to limit the risk for such instabilities (and only because of the reports about battery life issues):
- make a fresh backup, locate it on disk and make a copy of it
- wipe the phone, restoring it to factory default as if I'd be selling it
- perform the update from iTunes
- restore my backup as if I were setting up a new phone (making sure I'd be restoring the right backup!)
That step 4 is what I did with my 4S bought off eBay, using a backup of my 3rd gen. iPod Touch running the latest 5.x iOS. The 4S was on 6.0.1 when I got it, IIRC. Worked about flawlessly, very few settings got lost, so restoring a same-device backup of a less ancient OS should work even better.
If 6.1.3 had real, inherent battery issues, lots of owners of newly bought phones with 6.1.3 preinstalled would be complaining too. Which doesn't appear to be the case.