Also, for anyone relatively "techy" (like anyone on this board I believe), you can replace an iPhone battery for well under $10.
They are replaceable, just not easily replaceable for the average end-user.
I've had several iPhones (3G, 3GS, 4) and replaced the battery once on each just to keep max battery life. But really, I could have easily gone 2-3 years without replacing them. Going on a long hike in a couple of weeks (Mt. Washington) and just ordered a new battery for my 4 just in case. It lasts all day as it is, but I figure for $10 what the heck.