@stardust Because of federation, I believe. Once other servers have local copies of the toot, those local copies could fall out of sync (ActivityPub doesn't guarantee consistency). So with Delete+Redraft, everyone who knows of the existence of object X agrees on what it is. They might be unaware it's been deleted, or not see replies from certain instances, or whatever; but there's no disagreement about what it is. But if you allow editing, that's no longer the case - for example, maybe a poll was removed, and remote instances will try to send votes to what's now a plain-text post, confusing the server.
What might work would be to make an "edit" a self-reply with an annotation to that effect in the metadata. Then clients could grab the parent (older-version) post, and display replies in that thread with a warning that they are responses to an older version, like what Wikipedia does if you look at earlier revisions of a page. Clients unaware of the new feature would fail reasonably gracefully and show it as a normal self-reply, because under the hood it's a new status with a new object ID, not really an edit. It just looks that way by adding an annotation with those semantics.