For clarification RedHorse knows to refresh lookups when the user edits them in the interface. However it has no way of knowing that the table has changed in sql behind the scenes and so cannot detect that a list need updating.
In any case if someone enters incomplete or incorrect data in the field, it will be added to the lookup list regardless if being done via trigger and sp. Why not purchase an accurate city/state/zip list and craft a procedure to import those values to the lists.