Describe the bug
In the Site Editor: Editing and saving changes to a post dirties/saves the home page instead.
To reproduce
Steps to reproduce the behavior:
Expected behavior
The post to be the dirtied / saved entity.
Screenshots

Editor version (please complete the following information):
I'm currently not able to replicate this... One difference in my setup is that when I switch to a post, it shows the "singular" template rather than the "index" template. I wonder if it could be related

Sounds like it could, since index is the catch-all fallback for all template types. Maybe try with 2020 Blocks (since I think that's what Addie is using, judging from her gif)?
I was able to replicate this by using the index template with a static homepage. Then, when I switched to an individual post, an edit to post content actually updated the homepage.
I also wanted to note that you don't have to edit the homepage first - you can just load the editor, navigate directly to an individual post, and then editing it will dirty the homepage.
Mid-way down the stack, the issue is coming from here:
https://github.com/WordPress/gutenberg/blob/79271eb7b36323743c68cf1ed51d66446ba0cb1f/packages/block-library/src/post-content/inner-blocks.js#L8-L12
I believe that onChange is not updating when postType changes (even though blocks does).
If we add a key (to force react to destroy and remount the component when the key changes) to this line, then it works correctly.
I'm looking into useEntityBlockEditor to see which hook or component isn't updating correctly when postType changes.
I believe that onChange is not updating when postType changes (even though blocks does).
I am mistaken about this. onChange is updating when postType changes, so I think that the inner block controller is not handling this correctly.
My new hunch is that the onChange callback has not been updated here:
Yep, that was it. PR should fix that scenario and I added a test to make sure it doesn't break in the future
Most helpful comment
Yep, that was it. PR should fix that scenario and I added a test to make sure it doesn't break in the future