Why not retarget on every block? Should make things smoother and result in less oscillation. Is there a reason why retargetting is only every 2016 blocks?
I suppose the only right answer is "because that's how Satoshi implemented it". His reasons for doing may have included easy of implementation, easy to guarantee consistency among nodes, or little worry about instability of correction algorithms.