This is a great post!
You don't have many things to do if you just follow the "flow" of operations.
> 1. Does anyone know if the GWT is going to change so that this state doesn't have to be managed?
Not going to change, no, that's by design, with pretty good reasons backing those choices (and they quickly become obvious if you think more about it)
> 2. Anyone have any helper classes that can trap for this stuff?
No need for anything actually.
> 3. Any best practices?
Never pass a proxy as argument to a service method if its Id is enough.
Use relationships between proxies sparingly.
> All I want to do is: 1. Edit a previously loaded entity 2. Create a new entity and save it
>
> I must be making this harder than it actually is or else very few folks use this successfully.
You must be complicating things, as even with rather complex workflows, we're been successful with RF (though we had to fix a bunch of bugs; have a look at the ReviewPending issues in the tracker)