How long is a TSoftObjectPtr valid?

Yes! it feels like boilerplate when you have declare variable for hard reference again and then assign to it in the delegate call, especially in cases where you want the object to persist after load and only looking for async load for saving load time hitches instead of unloading it before time.

Maybe the use case engine developers had in mind was to load something aync , use it within the delegate and then leave it to the GC to dispose of it.

I could bundle all dynamically loadable objects in a container uclass and then use a soft reference to that container which will reduce double declaration to only 1 var but with many classes would bloat the code fast.