So moveTo() does a couple of extra things that MovePage doesn't. It calls spreadAnyEditBlock() if there's an error, and honors the suppressredirect permission. Why are these not done in MovePage proper? As it stands, it considerably complicates porting the existing users, which are fairly numerous.