There have been a number of reports of strange behavior when it comes to the reported battery level. Usually the problem seems to be that it stays frozen at some value for a while and then when you restart the phone it shows its real, lower value. Some people have suggested that some kind of internal service responsible for updating that level sometimes becomes inoperable for whatever reason, but I don't think anyone really knows what's going on behind the scenes.