First, from the perspective of credit card points: when you come back, you can get points by converting RMB into US dollars, which is more cost-effective (assuming you don't have US dollar cash or domestic cash). Of course, if you have US dollars in cash or cash in your domestic account, it is also cost-effective to use a credit card directly from the perspective of saving money.
Second, from the perspective of saving money: it is more cost-effective to convert RMB into Hong Kong dollars in advance as the payment currency for local shopping in Hong Kong. This "advance" means that you change RMB cash into Hong Kong dollars in Hong Kong, instead of changing RMB cash into Hong Kong dollars in Chinese mainland. Because of the latter, you can exchange the same amount of RMB for less Hong Kong dollars (the price of bank cash is not good for you).
In short, your so-called "cost performance" has become a good practical question for two reasons: 1) The exchange rates of cash and cash in banks are different; 2) The "difference" between the buying price and the selling price of buying and selling foreign exchange makes the more times you buy and sell foreign exchange, the greater the exchange rate loss (for example, if you buy US dollars in RMB cash at a domestic bank, and then the bank converts the US dollars into Hong Kong dollars to pay for the consumption of your merchants, it needs to be exchanged twice, and the exchange rate loss is the biggest! )