I beleive it is best to duplicate unless a relation is in use to bind both references. In rendering it might not be such a problem but with data use the following applies:-
I'd suggest that in genral general if an object has been given a set of specific address tags that they may be being used in a data sort were the address is clearly available after a text based search.
To explain imagine you took the raw xml data version of OSM and put it into either a database or simply a text editor then asked the program to find all of the kind of object your looking for say [find] "k=emergency, v=defibrillator" then all the defibrillators in the extract can come up along with all the other tags close by so it is easy to find all there addresses to put into a table to give to people.
If you did [find] "k=emergancy, v=defibrillator" & "k=addr:country, v=AT" & "k=addr:city, v=Wien" & "k=addr:district, v=5." then the list made could give all building addresses in district "5." which is a useful thing to be able to do.
If you remove the parts of the address because they seem duplicated then consider do the two references have a logical linking connection in the data, say with a reference or relation if not unless the algorithm to find can be made to search any object nearby as a possible address to correspond to then it is very difficult for a program to make a simple list for defibrillators users anymore.
So remembering data uses don't plot things out to use them it would make sense to leave the addresses intact and only make a correction if it is incomplete or wrong through contradiction with another addressed object. If possible visit the place to see what was the wrong one {remember people move things and draw things into OSM at different times and with varying offsets so it may be numbered for next door because it still is next door!}