Hi @DaveZ, sorry for a delayed reply. The simple answer is this: we decided to go with history rewriting because we wanted to create a true downstream of the new llvm.org llvm-project monorepo, where the upstream commit hashes would be the same throughout the commit history. The subtree merge would've added the old upstream commits from the split repos, and we would've ended up with a monorepo that had two sources of upstream commits: from the old split history before the monorepo became canonical, and the new upstream commits that are merged in into the downstream monorepo after it became canonical.
It's true that history rewriting forces us to change the repos, but we see it as an opportunity (e.g. to perform cleanups) rather than a problem. Duncan (@dexonsmith ) has been working on a set of tools to generate cascading downstream monorepos with rewritten history for a while now, so yes, we certainly did buy into it. I'll be posting an update about our progress today, so please stay tuned ;)