One crucial mistake that happens, I think, is to think of the GS parts of the fediverse as a microblogging service. It's not. It's a Twitter alternative. Blogging implies a one-to-many publishing but the reality is that the value of the fediverse is in the interaction between people.
It's inevitable due to the nature of the fediverse that nodes won't have a full view of all messages, but it should be doable to keep federation working between consenting nodes.
And passing the full user@domain shouldn't be an edge case. It's how most people recognize each other, not by the display name but by a simple username at instance.
My hope for the new API is that it will revolve around how people actually use the fediverse rather than implement great ideals of how things should work.