Well, believe it or not, I've managed to figure out what caused that bug. It seems that watching the general's speech at the beginning of a battle (with all the jumping between angles) somehow confused the camera. If I just skip the speech completely it works exactly as it should. I actually kind of liked listening to the Roman speeches, but it's a minor loss.