Hi Mike,
As I had already mentioned, it really doesn't make sense to lock/edit the result entity because when you try to lock there should be some method called behind it to really lock it at DB level. But in case if result entity it is a plain result coming from the query/dquery object. You can think of it as just a structure holding values. You cannot just lock it!. Then coming to when is get_i_* called, it would be called when you put your view into Edit Mode --> To check if this field should be enabled or not for input when the view is in edit mode. When View is in display mode there would not be any question of checking. In case of query result objects the return value of get_i will be always abap_true because as I had mentioned above simply it cannot be locked.
Hope this information helps.
Regards
Vinod