Why is nslookup reporting two IP addresses?
Neglecting to remove the old address is exactly what happened. It's not something that would occur when the old record is still in cache when the new one is added or something like that - a different new answer always fully replaced an old answer for a RR in a cache.
There's a record for the old address somewhere in the zone file, and a record for the new address somewhere in there, too. There are several valid syntax methods by which the record can be defined in the zone - it could be easy to overlook if they weren't specifically looking for the record to remove.