Regarding the implementation complexity: the first three implementers of FEP-ef61 are all relatively small projects, maintained by a single person without any external funding. We used three different programming languages: PHP, Go and Rust.
I am not saying that FEP-ef61 is easy to implement, but I think its core features (normalization, signatures, encodings, ‘ap’ identifiers) can be implemented by anyone.
If you know a simpler solution, feel free to submit a competing proposal. However, I doubt that it can be made simpler.
You can try to copy Nostr and use keys instead of DIDs, but then you would need to re-invent a mechanism for key rotation, which DIDs provide out of the box. You can replace integrity proofs with custom signatures, but then everyone would need to roll their own implementation instead of using a library. You can remove multibase and mandate a specific encoding, but what if chosen encoding has some unforeseen flaws? For example, base58-btc is slowly being phased out because it is hard to implement in constant-time.
There are other FEPs that also solve the migration problem, but they require cooperating servers, and usually involve URI rewriting, which IMO is a bigger problem for implementers.