Why does this suck so badly?

You’re absolutely misremembering…

You only need to restart the editor when you’ve made header changes or class-layout edits, which was just as true before Live Coding was introduced back around the 4.2 days. And the C++ backend has improved significantly since then. Because, in the pre-4.2 days, you could only feel safe making minor tweaks while the editor was open due to constant asset corruption and state loss (primarily with blueprints.) Now you have free reign when it comes to function body edits without any of those headaches, it simply patches the necessary chunks of code in live memory without affecting asset interaction.

You still need to do a full rebuild when the day is done to cement your changes, since Live Coding performs low-level code patching, it doesn’t actually modify the on-disk DLLs. But that too was just as true back in UE4, except Hot Reload wasn’t just performing code patches, it was swapping out in-memory DLLs wholesale, which is why it was so brittle. Low-level code patching is not only much quicker, but considerably more reliable.

It’s objective fact that any limitations you’re seeing in UE5 in this context were not only present, but worse back in UE4.