I don't understand why you hate them so much. What is your proposal? To do "delta" events? I don't think that would work at all unless you assume you're always getting all the events in order, which you definitely can't in Nostr. What do you think?
Not to mention the bandwidth and storage issues that come with this, and client-side costs of processing a big chain of diffs all the time live.
Of course replaceable events are not theoretically perfect, but they work pretty well as long as you don't overuse them.