Is it possible to use stream.rf() when the horizontal components are called BH1 and BH2 and when CMPAZ is defined in the SAC headers?
No, that is not possible in an automatic manner. You can use
stream.rotate('->ZNE') method to rotate to ZNE components. You will then need an inventory object (which can be created from stationxml file with obspy.read_inventory).