Yeah one pain point is if you squash your commits on PR merges, you'll have a situation where the branches look like:
master: 1, 2, 3
feature-1: 1, 2, 3, 4, 5, 6,
feature-2: 1, 2, 3, 4, 5, 6, 7, 8
Then we merge feature-1 into master (numbers in parentheses indicate squashing): master: 1, 2, 3, (4, 5, 6)
feature-2: 1, 2, 3, 4, 5, 6, 7, 8
Then say we have another commit to master: master: 1, 2, 3, (4, 5, 6), 9
feature-2: 1, 2, 3, 4, 5, 6, 7, 8
And now we need to rebase feature-2 onto master. We can't do a normal rebase because git will try to do: feature-2: 1, 2, 3, (4, 5, 6), 9, 4, 5, 6, 7, 8
Instead we have to do a slightly tricky maneuver where we rebase just 7, 8 onto master, getting: feature-2: 1, 2, 3, (4, 5, 6), 9, 7, 8
It's not impossible and you can memorize the process pretty easily, but I'd love a natural solution to this problem.