First, I shouldn't have said "need" that is too strong of a word. Nostr can keep going without breaking changes.
And in part I'm speaking in the abstract based on experience, based on the number of breaking changes that have happened so far and their approximate rate.
But I think some of the big things below app level are subkeys (for an offline masterkey) through something like a slightly modified NIP-26, binary events over websocket binary, something like negative filters or negentropy (specifics to be worked out), some kind of better relay usage for the many basic usages that actually exist (Vitor is working on that), ... that is off the top of my head.
Yeah, I had a similar list in mind. Subkeys and key management/rollover in general being the elephant in the room, because you kind of need to break some things there, as everything is currently operating under the assumption that keys are not just identifiers, but identities.
I guess there's just a lot of defiance, because it's a big "I told you so" to stomach.
OK here's your list, I just found it, nevermind my previous comment.