I think the fundamental problem that can't be fixed by Pkarr or any decentralised identity is that both Nostr and Pubky are pull only, there is no Push, as in there is no way to write on someone else's homeserver (maybe Pubky added that by now, I am not following closely), but then allowing Push gets you into the same Email spam problem. So you either depend on some authorities to filter who is a spammer or not, or you just allow only "friend requests" and keep them hidden by default except for a small dot with a number saying you have N friend requests, then you only allow friends to push notifications to you.
But now you are doing what Peergos/Matrix/Signal does, which I think are the correct patterns, but Nostr and Pubky want to imitate Twitter where any stranger (mostly Bots) can reply to you. But at least Twitter has a centralized authority to moderate these. Nostr has none, so I think open networks should lean into the friend requests thing.
At least the first reply from a stranger should be converted to a friend request, just to make sure randos don't get to spam your inbox until you vet them, or if you have enough grace, mark them the way Gmail marks them until you white list them.
At the end of the day, it all comes down to the architecture, do you want the message passing paradigm like ActivityPub or do you insist on the shared Heap paradigm of Twitter and Bluesky but also want to pretend it works for all applications AND can be decentralised?
