I think you have this relationship:
Person::PersonID = Addresses::PersonID
In this relationship, if you haven't done so already, double click the relationship line and specify that addresses be sorted by the date field you mentioned in descending order. This gives us a relationship where the most recent address will be listed first.
Now, define a calculation field, currentZip as Addresses::Zipcode
Given the sorted relationship, this zipcode will be the zipcode from the most recent address and now you can use it in Find Requests where you need to enter zipcode criteria for the most recent address. It's an unstored calculation so your finds will not be quick with large data sets, but it will work.
For faster results, use a number field in Person that "looks up" the zipcode from Addresses, then use script triggers on the zipcode field to force an update of this field any time you edit the zipcode of the most recent address.