Found the answer by myself after some research in the forum......it triggers a thing called "HIP Rule". For those of you who haven't heard of this like me: when flying A-B; B-C (B as a stopover), if the price of either A-B and B-C is higher than that of A-B-C (without stopover), the total price will be replaced by the higher one without changing the fare basis. In my case, both SFO-HNL and HNL-PEK is more expansive than SFO-HNL-PEK (funny

), so HIP rule is triggered. The final price I saw on HA website and ITA is similar to that of the HNL-PEK fare. Expedia for some reason didn't do the HIP check (yeah).