I just happened upon this as I saw in the migration guide for UE 5 that they encourage moving to use TObjectPtr, so I was making the changes and the same issue came up.
It’s weird, but it seems like internally they know this issue exists.
If it’s an issue at all that is.
Looking through some of their source code for the engine, places where changes have been made to use TObjectPtr are almost exclusively properties and as arguments in functions that don’t use the UFUNCTION macro.
It seems like a conscience decision in those places where it seems like this “issue” exists, to not have those functions marked with the UFUNCTION macro whether needed or not.
It’d be good to find out what is going on with this and how it’s intended to be used.