1. You are adding `amenity=police` to the `building=` and `building:part=` ie creating `amenity=fire_station` in every `building=` `building:part=` inside again, not changing what `building=` they are
2. `building=` is a structural form, not only function. `=office` already adequately presents it. There is already a spatial relationship, where you can get all `building=` inside a `amenity=police` area to know they are police buildings. `building=fire_station` is unique and recognizable, with fire trucks below the quarters. 
In any case, creating duplicate `amenity=police` station is absolutely wrong. It doesn't solve your problem. 