Not sure if this side effect means the site is working correctly or if this is something to be fixed. However, when I changed my timezone from UTC +8 to UTC for testing, not related to FCC, my streak counts became inaccurate.
Changing my timezone back to UTC +8, fixes it.
Total points don’t change, only the streaks.
These said, is it right to think that if I move to somewhere with a different timezone to my current one, my streak counts will perpetually look wrong?
That’s how time zones work, yeah. You didn’t code on every day in Australia (as a random city).
I do understand that. I think what I’m trying to get at is to ask if this is the desired effect when a user switches to another timezone?
Please let me know if this is misinformed. I’m thinking about it this way: A streak is acquired and accumulated if a user finishes at least one lesson within a 24 hour block; between 00:00 and 24:00 of the user’s timezone. Inferring from what I’ve observed, it seems that the streak is calculated dynamically based on the user’s timezone and if the user switches to another one, it offsets the the 24-hour block which the streak is based on. Thus, changing the values of the current and longest streak.
It’s probably not a big deal in the grand scheme of things. But as a user, I was expecting it to be independently tracked or not tied to my timezone. 
00:00 to 24:00 is different depending upon where you live though
People have been able to find ways to break the streak tracker since it was first introduced and always will. If you start breaking down all of the cases, you can see how incredibly complex a solution is. The edge cases are known and accepted as the least likely to happen in real life. Sometimes you have to accept a certain error rate, and since the streak counter is not tied to any of the functionality of freeCodeCamp, it’s fine.