It really depends on how you're using the person objects.  There are basically three ways you can get a person object.

By model row; in which case the Person is guaranteed to be populated with enough data to satisfy the model roles but possibly more when returned and all additional data will be available when it is complete.

By phone number; more or less the same as by row except you can't do any lookup of the Person until the cache is fully populated which is an existing limitation.

By ID; this can be called immediately and will always return an id but the Person may be empty or partially complete at that time.  The limitation here is much the same as it was before, except you're waiting for an individual Person to be populated instead of the entire data set.